私は以下の列にPosition_Date、Deal_NrおよびMarket Valueという列のテーブルを持っています。 ここでは、取引ごとに2日間の市場価値のデルタを計算する第4列を作成します。 例:Deal nr 100、MV 14/9 = 500、MV 13/9 = 600、500-600 = -100 ...分離された行のデルタ値の実行 - SQL Server 2008
私は、ポジション日付を合計してグループ化する方法を知っていますが、場合によっては作成せずに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
あなたが期待される結果を書き留めてくださいでした。あなたが表示したいものを意味します。 –