Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: E N T E R en Agosto 14, 2011, 08:59:32 pm
-
Hola de nuevo amigos necesito mostrar todas las facturas crédito que tiene el un cliente, y de otra tabla sumar lo que ya pago por Nfactura. Tengo este query pero no se como mostrar en una sola consulta.
Este me trae todas las facturas que tiene.
SELECT fecha, nfactura, SUM(exenta+iva5+iva10) AS xTotalCredito
FROM ventas
WHERE tipoventa='CREDITO' AND estado='DEBE' AND cedula ='35623563'
GROUP BY nfactura
Este me suma lo que ya entrego.
SELECT SUM(entrego) AS xTotalEntregas
FROM credito_ventas
WHERE nfactura=1012
Como muestra la imagen es como quiero que quede.
(http://enterpy.net/upload06/archivossubidos/j7i0w_saldo.jpg)
Edit: Solo movi el formato.
-
El segundo select esta medio feo para meterlo en el primer Select que tiene un sum, y luego tambien quieres mostrar su saldo.
Bueno, mientras aparezca una solución mas ortodoxa y para hacerlo identico a el resultado que quieres, yo me iría por retocar el RS haciendo un for next, una solución sucia pero una solución al final hasta que aparezca otra mejor.
Primero armo el Select con esta modificación:
sql =
SELECT fecha, nfactura, ' ' as xTotalEntrega, SUM(exenta+iva5+iva10) AS xTotalCredito, ' ' as Saldo
FROM ventas
WHERE tipoventa='CREDITO' AND estado='DEBE' AND cedula ='35623563'
GROUP BY nfactura
A nivel de VB6 viene esto:
Dim rs As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
rs.Open sql, dB, adOpenDynamic, adLockPessimistic '(importante abrirlo con OpenDynamic
For i = 1 To rs.RecordCount
sql2= "SELECT SUM(entrego) AS xTotalEntregas FROM credito_ventas WHERE nfactura= " & rs!nFactura
rs2.Open sql2, dB, 1, 1
TotEntr = iif(IsNull(rs2!xTotalEntregas), 0, rs2!xTotalEntregas)
NewSaldo = rs!xTotalCredito - TotEntr
rs.Fields("xTotalEntrega").Value = TotEntr
rs.Fields("Saldo").Value = NewSaldo
rs.Update
rs.MoveNext
Next i
-
Tengo este sript de sql pero no se por que me suma 2 veces la parte de Ventas.
SELECT v.fecha, v.nfactura, SUM(v.exenta+v.iva5+v.iva10) AS xTotalCredito, SUM(c.entrego)
FROM credito_ventas c
INNER JOIN ventas v ON v.nfactura=c.nfactura WHERE v.estado='DEBE'
GROUP BY c.nfactura
Como ven aca en la tabla Ventas solo tengo 2100
(http://enterpy.net/upload06/archivossubidos/3xsul_ventas_total.jpg)
Y aca en la tabla credito_ventas solo hay un entrega de 1000
(http://enterpy.net/upload06/archivossubidos/jp5r9_credito_ventas.jpg)
Este es el resultado que me trae.
(http://enterpy.net/upload06/archivossubidos/pdyi5_resultado_.jpg)