在sql查询中获取类似资产负债表的金额



我在一张表中有以下数据。。。

Name               CourseFee   AdditionalCharges  ExpenseAmount 
Course-A           500         10                 0
Course-B           250         0                  0
Paid To Trainer    0           0                  250

我想要sql查询的以下输出

Name               CourseFee   AdditionalCharges  ExpenseAmount NetAmount
Course-A           500         10                 0             510
Course-B           250         0                  0             760
Paid To Trainer    0           0                  250           510

净金额=(课程费+额外费用-支出金额)

您似乎想要字段的累积和:

select t.*,
       (select sum(t2.CourseFee + t2.AdditionalCharges - t2.ExpenseAmount)
        from onetable t2
        where t2.id <= t.id
       ) as NetAmount
from onetable t;

注:

  • 这假设您有某种类型的列来定义行的顺序。在上面的查询中,它被称为id,但它可以是id、日期或其他什么。SQL表表示无序的集合,因此这样的列是必要的
  • 您可以使用outer apply而不是相关的子查询来执行此操作
  • SQL Server 2012+直接支持累计总和

最新更新