Get previous row updated value using LAG Without using Recursive CTE
How to use LAG function to get the updated previous row value (without using Recursive CTE ). Please check the screenshot for sample output Query Tried Declare @Tbl as Table(SNO Int,Credit Money,Debit Money,PaidDate Date) Insert into @Tbl SELECT * FROM (VALUES (1,0,12,'7Jan16'), (2,10,0,'6Jan16'), (3,15,0,'5Jan16'), (4,0,5,'4Jan16'), (5,0,3,'3Jan16'), (6,0,2,'2Jan16'), (7,20,0,'1Jan16')) AS X(SNO,Credit,Debit,PaidDate) Select T.SNO, T.Credit, T.Debit, TotalDebit = Case When Credit < LAG(T.Debit, 1, 0) OVER (ORDER BY SNO) Then Debit + (LAG(T.Debit, 1, 0) OVER (ORDER BY SNO)-Credit) Else Debit