Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como adicionar a próxima e subtrair a linha anterior no SQL Server com base na condição


Você deve somar um CASE expressão que pode distinguir entre débitos e 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;