2016-08-31 11 views
1

カラムがID,Title,Date,Amountのテーブルがあります。mtd、ytdの値を計算するためのSQLクエリ

Title,Dateに基づいて、各取引に対してMTD、YTDの金額を取得する必要があります。

以前にこれを行った人はいますか?

+2

これをチェックし、あなたが最初の質問を編集してください:http://stackoverflow.com/help/formatting – neohope

答えて

2
Select t.title, t.Date, 
    Sum(y.Amount) YTD, 
    Sum(m.Amount) MTD 
From table t 
    join table y 
     on y.Title = t.Title 
     and datediff(year, y.Date, t.Date) = 0 
     and y.Date <= t.Date 
    join table m 
     on m.Title = t.Title 
     and datediff(month, m.Date, t.Date) = 0 
     and m.Date <= t.Date 
Group by t.title, t.Date 
+0

感謝を!本当に助かりました –

1
SELECT ID, 
     Title, 
     Date, 
     Amount, 
     MTD = SUM(Amount) OVER (PARTITION BY Title, DATEADD(MONTH, DATEDIFF(MONTH, 0, [Date]), 0)), 
     YTD = SUM(Amount) OVER (PARTITION BY Title, DATEADD(YEAR, DATEDIFF(YEAR, 0, [Date]), 0)) 
FROM [a_table] 
+0

ありがとう!本当に役に立つ –

関連する問題