Hola
Tengo 2 consultas y me gustaria saber su opinion acerca de cual será mas
rapida
Para hubicarlos en las tablas, la idea es que una tabla de Debitos o deudas
(bDebitos) y otra de los pagos a cuenta (bDebitosPago)
La idea es sacar una lista de los debitos que aun estan pendientes de pago
bDebitos(Codcli, IdContrato,IdDebito,Importe)
bDebitoPago(IdPago,IdDebito,importe) IdDebito es fk a bDebito
La pregunta es: Cual de las 2 consultas será mas rapida??
Primera version: Resuelto en una consulta
=SELECT D.IdContrato,D.codCli,D.IdDebito,
sum(D.importe) as Debitos,
coalesce(sum( C.importe),0) as Pagos,
sum(D.importe) - coalesce(sum( C.importe),0) as Saldo
FROM bDebito D LEFT JOIN bDebitoPago C ON D.IdDebito =C.IdDebito
GROUP by D.Codcli,D.IdContrato,D.Iddebito
HAVING sum(D.importe) - coalesce(sum( C.importe),0)>0
Segunda Version: Resuelto en una consulta anidada
=SELECT *,debitos-pagos as Saldo FROM (
SELECT D.IdContrato,D.codCli,D.IdDebito,
sum(D.importe) as Debitos,
coalesce(sum( C.importe),0) as Pagos
FROM bDebito D left join bDebitoPago C ON D.IdDebito
=C.IdDebito
GROUP by D.Codcli,D.IdContrato,D.Iddebito ) A
WHERE debitos>pagos
Leer las respuestas