Java - query en mysql

   
Vista:

query en mysql

Publicado por Rodolfo (6 intervenciones) el 09/08/2014 05:15:10
Hola todos, necesito hacer una consulta a mysql donde se mezclan dos tablas mas o menos asi:

Tabla Facturas
!------------!---------------!-----------------!---------------!
!.......id......!...# docu...!.......fecha......!.....monto....!
!------------!---------------!-----------------!---------------!
!...........1...!..........123...!.01/08/2014.!...5000.00..!
!------------!---------------!-----------------!---------------!
!...........2...!..........124...!.02/08/2014.!...2000.00..!
!------------!---------------!-----------------!---------------!
!...........1...!..........125...!.03/08/2014.!...4000.00..!
!------------!---------------!-----------------!---------------!
!...........3...!..........126...!.04/08/2014.!...7000.00..!
!------------!---------------!-----------------!---------------!


Tabla movimientos
!------------!---------------!-------------!-------------!-----------------!---------------!
!.......id......!....# fact.....!...# mov....!..tip mov..!......fecha......!.....monto....!
!------------!---------------!-------------!-------------!-----------------!---------------!
!...........1...!..........123...!..........44...!.....REC...!.01/08/2014.!...3000.00..!
!------------!---------------!-------------!-------------!-----------------!---------------!
!...........1...!..........123...!..........75..!.....NCR....!.02/08/2014.!...2000.00..!
!------------!---------------!-------------!-------------!-----------------!---------------!
!...........1...!..........125...!..........45..!.....REC....!.03/08/2014.!...2000.00..!
!------------!---------------!-------------!-------------!-----------------!---------------!
!...........1...!..........125.. !..........46...!.....REC...!.04/08/2014.!...2000.00..!
!------------!---------------!-------------!-------------!-----------------!---------------!

La primera tabla como vemos es de facturas la segunda de movimientos; recibos, nota de débito y notas de crédito.
El problema es que no logro hacer una consulta que me devuelva todos los registros en alguno de los tipos que he probado obtengo la factura pero solo uno de los movimientos de la segunda tabla, si vemos el ejemplo la factura 123 tiene dos movimientos aplicados un recibo # 44 y una nota de crédito # 75, en el segundo caso son dos recibos, un abono y una cancelación.

mysql="SELECT id,numfact,fecha,monto FROM facturas INNER JOIN recibos factapli,"
+ "numdoc,tipomov,fecha,monto WHERE facturas.id = recibos.id and "
+ "facturas.numfact = recibos.factapli and facturas.id ='" + codigo + "' order by id,numfact";

try {
st=cnxn1.createStatement();
rs=st.executeQuery(mysql);
while (rs.next()){
. . .

Esta consulta me devuelve solo un registro. La primera factura con el primer recibo.

Que estoy haciendo mal.

Gracias por ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Fernando

query en mysql

Publicado por Fernando (82 intervenciones) el 27/08/2014 23:38:59
asumiendo que tienes bien definidas las tablas con los primary key los llaves secundarias y constrain te digo que el problema es que estas utilizando iner join.
busca en internet el left join right join para ver cual de ellos reune las caracteristicas que quieres en este caso creo que es el lefth join el que te conviene utilizar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar