-1
我有一個表「@ table1」,我想遞歸地更新從「底部」的「金額」列到由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
單值110?爲什麼從50中減去50,忽略了0,並且12和34保持不變?負面價值觀與什麼有什麼關係(我在這裏沒有看到任何負面價值)?這個問題不清楚,我想你已經遺漏了一些信息。 –
@AaronBertrand - 不確定爲什麼有人想要這樣做,但要求似乎是這樣的:從最後一條記錄開始,爲行減去110或ProductCount,以最大者爲準(即)不要變爲負值。更新要減去的數字,然後重複,直到沒有剩餘部分要減去。 –
@KipReal:問題不清楚。如果你想得到很好的答案,請添加補充信息。我沒有投票。 –