2016-08-31 1 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

고마워요! 정말 도움이된다. –