Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment ajouter la ligne suivante et soustraire la ligne précédente dans SQL Server en fonction de la condition

Vous devriez additionner un CASE expression permettant de distinguer les débits des crédits :

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;