soy nueva en esto ojala me puedan ayudar
Necesito calcular el la cantidad acumulada de productos en base al DOC que son los diferentes movimientos del inventario algunos se restan, se suman o se quedan igual es decir con el acumulado anterior.
Debería quedar la columna del acumulado Así :
Código BASH:
Ver original
Codigo Quantity DOC FECHADOC SUMAN RESTAN IGUAL ACUMULADO 301262519 32 SUM 2012-12-31 32 0 0 32 301262519 52 SUM 2012-12-31 52 0 0 84 301262519 5 RES 2013-01-28 0 5 0 79 301262519 2 RES 2013-04-01 0 2 0 77 301262519 10 IGU 2013-04-18 0 0 10 77 301262519 10 RES 2013-05-02 0 10 0 67 301262519 6 IGU 2013-06-21 0 0 6 67 301262519 6 IGU 2013-06-28 0 0 6 67
mi consulta es esta
Código SQL:
el problema es que no se como puedo hacer para que cuando el DOC = IGU tome el acumulado anterior Ver original
SELECT A.Codigo, A.Quantity, DOC, FECHADOC, CASE WHEN A.DOC = 'SUM' THEN A.Quantity ELSE 0 END AS SUMAN , CASE WHEN A.DOC = 'RES' THEN A.Quantity ELSE 0 END AS RESTAN , CASE WHEN A.DOC = 'IGU' THEN A.Quantity ELSE 0 END AS IGUAL , ( SELECT SUM( CASE WHEN B.DOC = 'SUM' THEN 1 ELSE -1 END * B.Quantity ) FROM dbo.Inventario_Total AS B WHERE B.Codigo = A.Codigo AND ( B.FECHADOC < A.FECHADOC OR (B.FECHADOC = A.FECHADOC ) ) ) AS ACUMULADO FROM dbo.Inventario_Total AS A ORDER BY A.Codigo, A.FECHADOC
Gracias !!