SQL查询以查找运行总数
请帮助我找到下表的运行总数 上面显示的示例是一个示例。用于到达此位置的实际查询非常大,因此自连接不是一个可行的选项。请建议在(…)上使用类似sum()的函数 以下是输出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
提前感谢我之前要求,您可以在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