TSQL - 运行总计

iki*_*ill 0 sql t-sql sql-server

我有一个脚本,我正试图计算一组事务的运行余额:

此搜索

所以这里的关键领域是期初余额.这将是报告运行时的余额.因此,查询中的每个"AccountId"的值都是相同的.

总价值是已发生的交易的价值.(无列名称)是在结果集中找到的每个新帐户后重置的行号 -

ROW_NUMBER()OVER(PARTITION BY AccountId ORDER BY PostingDate)
Run Code Online (Sandbox Code Playgroud)

我当时正在做的是在Balance字段中我想做以下事情.

当行号= 1时,它将使用期初余额并添加到总价值.如你所见,我做得很好.

但是,我正在努力实现的是每个后续行,如何计算它下面的行上的余额.

因此,在上面的示例中,第一行显示余额为125.80.我希望第二行是226.98.所以没有行号为1的所有行的余额+总价值.

Gor*_*off 5

在SQL Server 2012+中,您可以执行以下操作:

select (OpeningBalance +
        sum(TotalValue) over (partition by AccountId order by PostingDate)
       ) as Balance
from t;
Run Code Online (Sandbox Code Playgroud)