【发布时间】:2018-07-31 12:21:23
【问题描述】:
我有一个包含负值和正值的金额列的表。我想计算值的总和并将负累积总和设置为零。
date amount actu_cusum exp_cusum
22-06-2018 60.626 60.626 60.626
29-06-2018 -78.309 -17.683 0
02-07-2018 -0.824 -18.507 0
09-07-2018 -0.822 -19.329 0
10-07-2018 14.79 -4.539 14.79
29-07-2018 20 15.461 34.79
30-07-2018 -30 -24.539 4.79
31-07-2018 15 -9.539 19.79
update a set a.calamount= z.cusum
from #temp a,
( select CustomerCode, date ,amount,
SUM(totaumamount) over ( partition by CustomerCode order by date )
as cusum from #temp
) z
where a.customercode = z.customercode and a.date = z.date
【问题讨论】:
-
这是什么“SQL”?你的 DBMS 是什么? “SQL”只是许多 DBMS 使用的一种查询语言。
-
看起来很像 SQL-Server。示例数据部分中似乎缺少您的列
customercode。 -
挑战是计算那些预期的 [exp_cusum] 结果吗?如果是这样,那么这个问题并不像锁定这篇文章的那个重复问题那么简单。它应该重新打开。
标签: sql sql-server