У меня есть таблица "@ table1", и я хотел бы рекурсивно обновить столбец "Сумма" от ДНА до порядка TOP по RowID.То есть, принимая отрицательные значения, вычитая это значение из значения строки выше, если конечный результат все еще является отрицательным, вычтите это значение из следующей строки, заменив предыдущее значение на 0.
DECLARE @table1 TABLE (RowID int, Amount int);
INSERT @table1 VALUES
(1,20),
(2,10),
(3,-10),
(4,10),
(5,-5),
(6,30);
Select * from @table1
RowID Amount
----------- -----------
1 20
2 10
3 -10
4 10
5 -5
6 30
Таблица результатов
DECLARE @table1 TABLE (RowID int, Amount int);
INSERT @table1 VALUES
(1,20),
(2,0),
(3,0),
(4,5),
(5,0),
(6,30);
Select * from @table1
RowID Amount
----------- -----------
1 20
2 0
3 0
4 5
5 0
6 30