use*_*783 14 sql sql-server select sql-server-2008
嗨我有一个名为Qty的列来自表Bills我想要一个列显示Qty列的运行总和,如下所示:
Qty Run_Sum
1 1
2 3
3 6
4 10
5 15
Run Code Online (Sandbox Code Playgroud)
建议我运行一些感谢的一些合适的方法
Joh*_*Woo 12
如果您的RDBMS支持窗口功能,
对于 SQL Server 2012
SELECT Qty,
SUM(Qty) OVER (ORDER BY Qty) AS CumulativeTOTAL
FROM tableName
Run Code Online (Sandbox Code Playgroud)
对于 SQL Server 2008
SELECT a.Qty, (SELECT SUM(b.Qty)
FROM TableName b
WHERE b.Qty <= a.Qty)
FROM TableName a
ORDER BY a.Qty;
Run Code Online (Sandbox Code Playgroud)
val*_*lex 12
SELECT Qty,
SUM(Qty) OVER (ORDER BY Qty) Run_Sum
FROM t ORDER BY Qty
Run Code Online (Sandbox Code Playgroud)
对于2012之前的SQLServer:
select Qty,
(select sum(Qty) from t where Qty<=t1.Qty)
from t t1 order by Qty
Run Code Online (Sandbox Code Playgroud)
或者您也可以在没有子查询的情况下执行此操作:
select t1.Qty, sum(t2.Qty)
from t t1
join t t2 on (t1.Qty>=t2.Qty)
group by t1.Qty
order by t1.Qty
Run Code Online (Sandbox Code Playgroud)