【发布时间】:2020-09-14 12:16:24
【问题描述】:
我有一个由以下人员创建的表:
CREATE TABLE table1
(
id INT,
multiplier INT,
col1 DECIMAL(10,5)
)
INSERT INTO table1
VALUES (1, 2, 1.53), (2, 3, NULL), (3, 2, NULL),
(4, 2, NULL), (5, 3, NULL), (6, 1, NULL)
结果:
id multiplier col1
-----------------------
1 2 1.53000
2 3 NULL
3 2 NULL
4 2 NULL
5 3 NULL
6 1 NULL
我想添加一列col2,它被定义为multiplier * col1,但是col1 的下一个值随后更新为采用先前计算的col2 值。
结果表应如下所示:
id multiplier col1 col2
---------------------------------------
1 2 1.53000 3.06000
2 3 3.06000 9.18000
3 2 9.18000 18.36000
4 2 18.36000 36.72000
5 3 36.72000 110.16000
6 1 110.16000 110.16000
这可能使用 T-SQL 吗?我尝试了一些不同的方法,例如将id 加入id - 1,并使用UPDATE 进行顺序更新并设置变量,但我无法让它工作。
【问题讨论】:
标签: sql sql-server sql-update window-functions recursive-query