Hola...
Amigos, alguien sabe alguna manera de poder acumular la suma de dos registros resultantes en Sql (Firebird), por ejemplo:
Código SQL
[-]
SELECT VAL.FECHA AS FECHA_DEUDA,PROV.RUT_PROVEEDOR,PROV.DV_PROVEEDOR,PROV.DESCRIPCION,
(VAL.VALOR_COMPRA - (NOTA.TTNOTA + ABONO.TTABONO)) AS VALOR_DEUDA,
VAL.VALOR_COMPRA,NOTA.TTNOTA, ABONO.TTABONO
FROM(SELECT DISTINCT A.CODIGO_PROVEEDOR,B.RUT_PROVEEDOR,B.DV_PROVEEDOR,B.DESCRIPCION
FROM FACTURA_DE_COMPRAS A, PROVEEDORES B
WHERE A.CODIGO_PROVEEDOR=B.CODIGO_PROVEEDOR
AND A.FACTURA_CANCELADA='N'
AND A.ANULADA='N') PROV
LEFT JOIN(SELECT CODIGO_PROVEEDOR,MIN(FECHA_COMPRA) AS FECHA,COALESCE(SUM(TOTAL_COMPRA),0) AS VALOR_COMPRA
FROM FACTURA_DE_COMPRAS
WHERE FACTURA_CANCELADA='N'
AND ANULADA='N'
GROUP BY CODIGO_PROVEEDOR) AS VAL ON VAL.CODIGO_PROVEEDOR=PROV.CODIGO_PROVEEDOR
LEFT JOIN(SELECT A.CODIGO_PROVEEDOR,COALESCE(SUM(A.TOTAL_NOTA),0) AS TTNOTA
FROM NOTA_CREDITO_PROVEEDORES A, FACTURA_DE_COMPRAS B
WHERE A.CODIGO_PROVEEDOR=B.CODIGO_PROVEEDOR
AND A.CODIGO_FACTURA_DE_COMPRA=B.CODIGO_FACTURA_DE_COMPRA
AND B.FACTURA_CANCELADA='N'
AND B.ANULADA='N'
GROUP BY A.CODIGO_PROVEEDOR) AS NOTA ON NOTA.CODIGO_PROVEEDOR=PROV.CODIGO_PROVEEDOR
LEFT JOIN(SELECT B.CODIGO_PROVEEDOR,COALESCE(SUM(C.VALOR_ABONADO),0) AS TTABONO
FROM CONTROL_DE_ABONOS A, FACTURA_DE_COMPRAS B,DET_CONTROL_ABONO_FACTURAS C
WHERE A.CODIGO_PARTICULAR=B.CODIGO_PROVEEDOR
AND A.TIPO_OPERACION=2
AND B.CODIGO_FACTURA_DE_COMPRA=C.CODIGO_DOCUMENTO
AND C.TIPO_DOCUMENTO=2
AND B.FACTURA_CANCELADA='N'
AND B.ANULADA='N'
GROUP BY B.CODIGO_PROVEEDOR) AS ABONO ON ABONO.CODIGO_PROVEEDOR=PROV.CODIGO_PROVEEDOR
ORDER BY VAL.VALOR_COMPRA DES
Los Campos resultantes de esa consulta son:
FECHA_DEUDA,RUT_PROVEEDOR,DV_PROVEEDOR,DESCRIPCION,VALOR_COMPRA,TTNOTA,TTABONO,VALOR_DEUDA
Entonces lo que nesecito es que me entregue una columna en la que sume
las deudas ( el campo Valor_Deuda ), acumuladas en cada registro..
FECHA_DEUDA,RUT_PROVEEDOR,DV_PROVEEDOR,DESCRIPCION,VALOR_COMPRA,TTNOTA,TTABONO,VALOR_DEUDA,SUMA
Por ejemplo
1- Deuda | Suma
500 500
1000 1500
2000 3500
Muchas gracias por su ayuda...