
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.
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


0