Hola, tengo el siguiente problema, espero que se entienda lo que trate de
explicar
select cliente.apellnomb,sum(ventas.imptotal)as Total,
sum(ctactepropia.monto)as Pagado,
max(ctactepropia.fecent)as Fecha
from cliente inner join ventas
on cliente.codcli = ventas.codcli and ventas.tipopago = 'CC' and
ventas.codentfin = 11
and ventas.estadoven = 'a' inner join ctactepropia on
ventas.codven = ctactepropia.codven and ventas.tipopago = 'CC' and
ventas.codentfin = 11
and ventas.estadoven = 'a' group by cliente.apellnomb
Resultado
PENNA MONICA 42.1500 15.0000 2005-12-15 21:28:00.000
Tabla Cliente
CodCli Apellnomb
2448 PENNA MONICA
Tabla Ventas
Codven Imptotal CodCli
65 18.18 2448
71 23.97 2448
Tabla CtaCtePropia
CodVen FechaEnt Monto
65 2005-12-15 21:28:00.000 10
71 2005-12-26 11:50:46.000 5
En la tabla ctactepropia se van guardando las entregas de cada venta
Al tener una sola entrega como el ejemplo anterior el Total es correcto.
si agregamos otro pago la tabla CtaCtePropia queda así:
CodVen FechaEnt Monto
65 2005-12-15 21:28:00.000 10
71 2005-12-26 11:50:46.000. 5
71 2005-12-26 11:56:34.000 8
Resultado
PENNA MONICA 66.1200 23.0000 2005-12-26 11:56:34.000
El Resultado es incorrecto porque debería dar el mismo importe el Total ya
que es el mismo
(42.1500) resultado de 18.18 + 23.97
Lo que descubrí que está pasando es que realiza la siguiente cuenta:
(23.97 + 23.97) + 18.18, osea suma el ImpTotal de cada venta por cada pago
que se va
agregando a la venta, mientras que el Pagado sigue siendo correcto.
Si agrego otro pago a la venta de cualquier importe triplica el resultado:
(23.97+23.97+23.97) + 18.18
Daniel.
Leer las respuestas