sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo agregar la siguiente y restar la fila anterior en SQL Server según la condición

Deberías estar sumando un CASE expresión que puede distinguir entre débitos y créditos:

SELECT 
    Id,
    TransactionType,
    SUM(CASE WHEN TransactionType = 'Receipt' THEN value ELSE -1.0*value END)
        OVER (ORDER BY Id ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS DiffValue
FROM #Temp
ORDER BY Id;