【发布时间】:2021-04-28 09:47:13
【问题描述】:
我有以下数据库表:
Date Return Index
01-01-2020 0.1 Null
01-02-2020 0.2 Null
01-03-2020 0.3 Null
我想使用以下公式更新索引值:
Index = (100 * Return) + Previous_Month_Index (if Previous_Month_Index is not available, use 100)
预期结果:(按日期升序计算的索引)
Date Return Index
01-01-2020 0.1 110 -- (100 + 10)
01-02-2020 0.2 130 -- (110 + 20)
01-03-2020 0.3 160 -- (130 + 30)
如何使用 SQL 来做到这一点?我目前正在使用光标来计算这个,但它不是一个推荐的计算方式。
【问题讨论】:
-
这能回答你的问题吗? How to get cumulative sum
-
@Larnu - 谢谢,在这种情况下我需要更新表中的值。
-
但这并没有改变解决方案。如第二个答案所示,您仍然需要窗口化的
SUM。 -
另外,我需要以100为起点。你有查询的例子吗?谢谢。
-
那么你想要 Stu 的答案只是没有更新(即 CTE 中有什么!)
标签: sql sql-server tsql