在 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+直接支持累加。
我有以下数据 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+直接支持累加。