我在一张表中有以下数据。。。
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+直接支持累计总和