在 sql 查询中获取 Balance-Sheet 等金额

Get Amount like Balance-Sheet in sql query


我有以下数据 table...

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

NetAmount =(课程费用 + 附加费用 - ExpenseAmount)

您似乎需要字段的累计和:

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 table表示无序个集合,所以需要这样的列。
  • 您可以使用 outer apply 而不是相关子查询来执行此操作。
  • SQLServer 2012+直接支持累加。