SQL查询以查找运行总数

SQL查询以查找运行总数,sql,sql-server-2008,Sql,Sql Server 2008,请帮助我找到下表的运行总数 上面显示的示例是一个示例。用于到达此位置的实际查询非常大,因此自连接不是一个可行的选项。请建议在(…)上使用类似sum()的函数 以下是输出 提前感谢我之前要求,您可以在2008版本中使用通用表表达式(CTE),在2012版本中使用OVER子句 这是我从黑暗骑士那里得到的一个答案 CREATE TABLE #TEST(ID INT,VALUE INT) INSERT INTO #TEST VALUES (1,10),(2,20),(3,30

请帮助我找到下表的运行总数

上面显示的示例是一个示例。用于到达此位置的实际查询非常大,因此自连接不是一个可行的选项。请建议在(…)上使用类似sum()的函数

以下是输出


提前感谢

我之前要求,您可以在2008版本中使用
通用表表达式(CTE)
,在2012版本中使用
OVER
子句

这是我从黑暗骑士那里得到的一个答案

    CREATE TABLE #TEST(ID INT,VALUE INT)
    INSERT INTO #TEST VALUES
    (1,10),(2,20),(3,30),(4,40),(5,50),(6,60),(7,70)

    ;WITH CTE
    as
    (
       SELECT ID,VALUE,VALUE AS RESULT FROM #TEST WHERE ID=1
       UNION ALL
       SELECT T.ID,T.VALUE,T.VALUE+C.RESULT
       FROM #TEST T INNER JOIN CTE C ON T.ID = C.ID+1
    )

    SELECT * FROM CTE
学分:


希望该线程能帮助您。

标准方法是使用子查询:

select *, (select sum(salary) from tablename t2 where t2.id <= t1.id) as runningsalary
from tablename t1

请指定预期输出。
select *, sum(salary) over(order by id) as runningsalary
from tablename t1