-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:问题不清楚。如果你想得到很好的答案,请添加补充信息。我没有投票。 –