Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come aggiungere la riga successiva e sottrarre la precedente in SQL Server in base alla condizione

Dovresti sommare un CASE espressione che può distinguere tra debiti e crediti:

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;