SELECT CORTE, SUM(IF(CANTIDAD>0,CANTIDAD,0)) AS CANTIDAD,SUM(CANTIDAD)
AS SALDO FROM tabla GROUP BY CORTE
Eso no se puede hacer con el LocalSQL (BDE) porque no tiene la función
IF, lo más próximo que podrías obtener en una única consulta sería:
SELECT CORTE, 0 AS CANTIDAD, SUM(CANTIDAD) FROM tabla GROUP BY CORTE
UNION
SELECT CORTE, SUM(CANTIDAD), 0 FROM tabla WHERE CANTIDAD>0 GROUP BY CORTE
Si necesitás tener ambos datos en una única fila tendrías que crear
una tabla intermedia (con la consulta anterior por ejemplo) y luego hacer:
SELECT CORTE, SUM(CANTIDAD), SUM(SALDO) FROM intertabla GROUP BY CORTE
--- En DesarrolloDelphi@..., Walter <wmeson@...> escribió:
>
> Tengo el siguiente problema, tengo una tabla dbf con estos datos :
> CORTE LOTE CANTIDAD
> 1245 A 150
> 1245 B 150
> 1245 C 150
> 1245 A -150
> 1245 B -148
> 1245 C -148
>
> A los que le aplico una TQuery y lo que necesito es lograr este
resultado :
>
> CORTE CANTIDAD SALDO
> 1245 450 4
> Es decir, obtener la cantidad total de cortes y a su vez, el saldo
> restante (conformado por las cantidades negativas)
> Por mas que intento, no hay caso, no logro llegar a ese resultado (la
> tabla tiene muchos datos con distinto numero de corte).
> Una vez vi algo parecido por ahi, o sea, sé que se puede lograr,
pero no
> sé cómo...
> ¿Alguna idea/sugerencia...?
> Desde ya, muchas gracias.
> Walter
>