我有一个sql server表,如下所示

时间:2015-03-30 12:32:01

标签: sql-server

我有一个包含两个列的表,如下所示

ID  SAL
1   1000
2   2000
3   3000
4   4000
5   5000



我希望有这样的输出:

ID  SAL
1   1000
2   3000
3   6000
4   10000
5   15000

* / 如何在不使用案例陈述的情况下实现这一目标?

1 个答案:

答案 0 :(得分:0)

SELECT ID, SUM(SAL) OVER(ORDER BY ID) AS SAL
FROM YourTable;

这称为运行总和,适用于SQL Server 2012+

回复的一个例子:

DECLARE @Test TABLE (ID INT, SAL INT);

INSERT INTO @Test
    (ID, SAL)
VALUES
      (1, 1000)
    , (2, 2000)
    , (3, 3000)
    , (4, 4000)
    , (5, 5000);

SELECT ID, SUM(SAL) OVER (ORDER BY ID) AS SAL
FROM @Test

导致:

ID  SAL
----------
1   1000
2   3000
3   6000
4   10000
5   15000