【发布时间】:2016-09-20 07:48:48
【问题描述】:
我有下表,其中包含 Position_Date、Deal_Nr 和 Market Value 列。 现在我想创建第四列,计算每笔交易在 2 天内的市值增量。 例如交易编号 100,MV 14/9 = 500。MV 13/9 = 600。500-600 = -100...
如果我在头寸日期求和并分组,我知道如何做到这一点,但是有没有办法计算每笔交易中隔离的增量,而不用将 deal_nr 作为条件?我有 100 种不同的 deal_nr 并且会出现新的交易,所以我希望查询是静态的。
Position_date |Deal_Nr| Market Value | Delta Market Value
2016-09-14 | 100 | 500 | -100
2016-09-14 | 101 | 1000 | 200
2016-09-14 | 102 | 120 | -30
2016-09-14 | 103 | 400 | -40
2016-09-13 | 100 | 600 | -300
2016-09-13 | 101 | 800 | 100
2016-09-13 | 102 | 150 | -150
2016-09-13 | 103 | 440 | 240
2016-09-12 | 100 | 900 | N/A
2016-09-12 | 101 | 700 | N/A
2016-09-12 | 102 | 300 | N/A
2016-09-12 | 103 | 200 | N/A
如果我要计算按仓位日期分组的聚合增量,则可以使用以下方法。
Select
Position_date,
Market_Value,
Delta_MV = sum(Market_value) - (select sum(Market_value) from t1
where position_Date = a.position_date -1
Group by position_date)
from t1 as a
Group by position_date
【问题讨论】:
-
能否请您写下您的预期结果。我的意思是你想展示什么
标签: sql-server sum delta