【发布时间】:2015-08-01 15:04:02
【问题描述】:
我想从 totalammount 计算余额运行时间 - AmmountReceived = Balance next row ..
Totalammont(实际上将是以前的运行时计算的余额应该在这里) - AmmountReceived = Balance 等等......
这是我的查询,它不会减少 totalAmmount
select ID,
RecvDate,
BillNo,
ModeofPayment,
(Select Item_name from Product where ID = CampusRecovery.ItemID) as Item,
SUM(AmountReceived) as AmountReceived,
(Select CampusName from Campus where CampusID = CampusRecovery.CampusID) as Campus,
IsNull((select SUM(Inventory_Out.TotalAmount)
from Inventory_Out
where Inventory_Out.BillNo = CampusRecovery.BillNo),0) as TotalAmmount,
IsNull((select SUM(Inventory_Out.TotalAmount)
from Inventory_Out
where Inventory_Out.BillNo = CampusRecovery.BillNo),0) - SUM(AmountReceived) as Balance
from CampusRecovery
where RecvDate Between @startdt and @enddt
and CampusID = 2
Group By CampusRecovery.CampusID,
CampusRecovery.ItemID,
CampusRecovery.RecvDate,
CampusRecovery.BillNo,
CampusRecovery.ModeofPayment,
CampusRecovery.ID
【问题讨论】:
-
您能否在表定义中添加一些示例数据和预期输出?会让弄清楚这一点变得容易得多
-
包括样本数据和您的预期输出。根据您的描述,您需要窗口函数。
-
@JeremyC。请查看我更新的帖子,我插入了解释问题的图片
-
@VladimirOselsky 请查看我更新的帖子,我已插入解释问题的图片
-
所以最后一行的 Totalamount 应该是 240 和 balence 40?在这种情况下,您没有给我们正确的语句,因为我们需要您的插入语句
标签: join subquery correlated-subquery inner-query