问候语 我是新的SQL Server我有一个表的事务与属性Debit,Credit和其他列,我想计算余额,但我不能使用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 SERVER的新手如何在MSSQLSERVER中执行此操作 在此先感谢
答案 0 :(得分:2)
在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;
也就是说,这就是你如何同时为不同的账户进行计算。