小编Rya*_*yan的帖子

在 SQL Server 中为滚动总和设置非负底限

我需要在滚动总和计算上设置一个下限。例如,与

PKID    NumValue    GroupID
----------------------------
1       -1          1
2       -2          1
3       5           1
4       -7          1
5       1           2
Run Code Online (Sandbox Code Playgroud)

我想拥有:

PKID   RollingSum    GroupID
----------------------------- ## Explanation: 
1      0             1        ## 0 - 1 < 0  => 0
2      0             1        ## 0 - 2 < 0  => 0
3      5             1        ## 0 + 5 > 0  => 5
4      0             1        ## 5 - 7 < 0  => 0
Run Code Online (Sandbox Code Playgroud)

当添加一个负数将导致总和为负时,将激活限制以将结果设置为零。后续的加法应该基于这个调整后的值,而不是原来的滚动总和。

应该使用加法来达到预期的结果。如果第四个数字从 -7 变为 -3,则第四个结果应该是 2 而不是 0

如果可以提供单个金额而不是几个滚动数字,那也是可以接受的。我可以使用存储过程来实现非负加法,但这太低级了。 …

sql-server-2008 sql-server running-totals

5
推荐指数
1
解决办法
1907
查看次数