Por el tema de la consulta sql creo que es mejor como hice porque en cada read de los datareaders cargo una fila y ahí mismo le digo si fue factura o pago, cosa que con el UNION no se podría hacer..
-------------------- operación -- id -------- fecha ------- debe --- haber
Dim fila() As Object = {"Factura", readerHV(0), readerHV(1), readerHV(2), 0}
dt1.Rows.Add(fila)
ó
Dim fila() As Object = {"Factura", readerHV(0), readerHV(1), readerHV(2), 0}
dt1.Rows.Add(fila)
Originalmente publicado por
AGUSTIN_RAMONE
Pregunto..., a la tabla Pago no le faltaria el id_venta en vez del id_cliente?, porque si tuvieras eso relacionado, directamentes haces un join de la tabla pago con la tabla venta donde pago.id_venta = venta.id_venta.
De ese join sacas los campos que te interesan y los ordenas por lo que quieras.
lo que pasa es que el sistema no trabaja con pagos referidos a una factura sino con pagos a factura ó entregas.. yo siempre lo hice como decís vos.. pero a este cliente en vez de pagarle una factura le entregan la mitad hoy y el resto el mes que viene junto con la factura siguiente.. eso es lo que me complico la vida.. tuve que hacer una tabla pago y detalle_pago (igual que venta y detalle_venta), en cada detalle_pago tengo la factura que pago y si fue una entrega, se termino de pagar, o se pagó completa.
__________________________________________________ _____________
tengo 3 ventas:
id --id_cliente-- importe
1457 ---- 1 ---- 211.75
1458 ---- 1 ---- 181.50
1459 ---- 1 ---- 211.75
tabla PAGO
id ------id_cliente --- importe ---------- fecha_pago ------- estado
175 ---- 1 ---------- 500,00 ---------- 25/06/2009 --------- a
176 ---- 1 ---------- 105,00 ---------- 25/06/2009 --------- a
tabla DETALLE_PAGO
id_pago -- id_venta ---- importe ----------tipo ---------- id_detalle
175 ------- 1457 --------- 211,75 --------- Pago --------- 35
175 ------- 1458 --------- 181,50 --------- Pago --------- 36
175 ------- 1459 --------- 106,75 --------- Entrega ------ 37
176 ------- 1459 --------- 105,00 --------- Entrega-Pago --- 38