Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So addieren Sie die nächste und subtrahieren die vorherige Zeile in SQL Server basierend auf der Bedingung

Sie sollten einen CASE zusammenfassen Ausdruck, der zwischen Soll und Haben unterscheiden kann:

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;