在 SQL Server 中使用变量的贷方借方余额

本文关键字:方借 方余额 变量 SQL Server | 更新日期: 2023-09-27 18:07:54

Greeting我是 SQL Server 的新手,我有一个带有属性借方、贷方和其他列的表交易,我想计算余额,但我无法使用 CTE 查询期望结果应该像....

借方       贷方       余额
10,000 0 10,000                     
0 3,0000 7,000                       
5,000 0 12,000                      

以前我在MySQL中使用如下变量执行此操作

SELECT  A.Debit,A.Credit, @b := @b + A.Debit - A.Credit AS balance
FROM (SELECT @b := 0.0) AS dummy  
 CROSS JOIN FinTrans A

但我是MSSQL服务器的新手,如何在MSSQLSERVER中执行此操作提前致谢

在 SQL Server 中使用变量的贷方借方余额

> 在 SQL Server 2012 中,您将使用 ANSI 标准累积求和函数:

select ft.*,
       sum(debit - credit) over (order by ??) as balance
from FinTrans ft;

SQL 表表示无序集。 ??用于指定累积总和的排序的列。

实际上,这通常可能如下所示:

select ft.*,
       sum(debit - credit) over (partition by <account id column>
                                 order by <ordering column
                                ) as balance
from FinTrans ft;

也就是说,这就是您同时对不同帐户进行计算的方式。