我正在尝试在SQL2008中准备一份子分类帐查看报告。 这是临时表
AccountCode |Date |Fiche Type |Debit |Credit |Balance
100.001.001 |1.1.2015 |Açılış Fişi |1856,09 |0 |1856,09
100.001.002 |1.1.2015 |Mahsup Fişi |0 |20 |-20
100.001.001 |1.2.2015 |Tediye Fişi |0 |950 |906,09
100.001.002 |1.2.2015 |Açılış Fişi |2931,37 |0 |2911,37
100.001.001 |1.4.2015 |Mahsup Fişi |0 |6,25 |899,84
100.001.002 |1.6.2015 |Tahsil Fişi |0 |400 |2511,37
100.002.001 |1.7.2015 |Açılış Fişi |0 |1969,5 |-1969,5
100.002.001 |1.20.2015 |Mahsup Fişi |217,6 |0 |-1751,9
100.001.001 |1.21.2015 |Mahsup Fişi |500 |0 |1399,84
100.002.001 |1.21.2015 |Tediye Fişi |2000 |0 |248,1
100.001.002 |1.21.2015 |Tahsil Fişi |543,34 |0 |3054,7
在最后一栏中,我尝试计算第一列中帐户代码的余额。平衡字段的公式简单(借记 - 贷记)。报告应按日期排序。因此,例如在第3行中,由于帐户代码相同,因此余额字段必须采用第一列值并将它们与第3列的值(Row1(借方 - 贷方)+行3(借方 - 贷方))组合。
我尝试了很多东西,但没有运气,因为列表没有按照运行总计所基于的标准排序。
有人能为我提供解决方案吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
在SQL Server 2012+中,您可以使用累积总和。在SQL Server 2008中,您可以使用相关子查询,联接或应用。以下是后者:
select l.*, cume.balance
from ledger l cross apply
(select sum(debit - credit) as balance
from ledger l2
where l2.AccountCode = l.AccountCode and
l2.date <= l.date
) cume;