SQL 查询:SUM 值直到当前记录

dje*_*dot 5 sql sql-server sum

基本上,有这张表:

12.10
 2.35
21.45
35.26
Run Code Online (Sandbox Code Playgroud)

我想在每条记录中计算所有先前记录的总和,如下所示:

12.10 | 12.10
 2.35 | 14.45
21.45 | 35.90
35.26 | 71.16
Run Code Online (Sandbox Code Playgroud)

edo*_*oft 2

这称为运行总计。

如果您有日期时间列,您可以使用如下所示的内容:

SELECT t1.id, t1.transactiondatetime, amount,
(
 SELECT SUM(amount) 
 FROM dbo.table1 as t1 
 WHERE t1.transactiondatetime <= t0.transactiondatetime
) AS balance
FROM dbo.table1 AS t0
Run Code Online (Sandbox Code Playgroud)