Veamos
Revisa este ejercicio y dime si te es util.
Código SQL:
Ver originalCREATE TABLE Tmp(
Fecha_Hora smalldatetime,
No_Comprobante INT,
No_Linea SMALLINT,
Lote INT,
Pcb SMALLINT,
Pedido SMALLINT,
Ingreso SMALLINT,
Egreso SMALLINT,
Saldo SMALLINT
)
GO
INSERT INTO Tmp VALUES('2005-05-02 01:15:00',4,1,21,6,334,167,0,0)
INSERT INTO Tmp VALUES('2005-05-03 15:07:10',5,1,29,6,167,167,0,0)
INSERT INTO Tmp VALUES('2005-07-01 12:25:15',6,1,12,6,200,50,0,0)
INSERT INTO Tmp VALUES('2005-07-01 21:05:52',25,1,1,6,200,0,140,0)
GO
SELECT
a.fecha_hora,
a.ingreso,
a.egreso,
SUM(b.ingreso - b.egreso) AS saldo
FROM
tmp AS a
INNER JOIN
tmp AS b
ON b.Fecha_Hora <= a.Fecha_Hora
GROUP BY
a.fecha_hora,
a.ingreso,
a.egreso
ORDER BY
1 ASC
GO
DROP TABLE tmp
GO
Si este calculo lo quieres hacer por producto, entonces debes agregar una
condicion mas al "inner join", que es:
a.product_id = b.productid