Hola a Todos
!
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 originalCodigo 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:
Ver originalSELECT 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
el problema es que no se como puedo hacer para que cuando el DOC = IGU tome el acumulado anterior
Gracias !!