2013-06-10 3 views
0

이 표가 주어지면, 월별 연도 별 요약을 생성해야합니다. 결과에는 해당 연도의 각 달에 대해 한 행이 있어야하고 그 달까지의 연도에 대한 누적 합계가 있어야합니다. 나는 SQL에 관해서 초심자가되는 것은 결코 아니지만, 순수한 SQL에서 이것을 달성하는 방법을 아직 모르고있다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? Microsoft Access SQL과 호환 가능해야합니다. 예상 결과 내 예 출력에서 ​​ Access에서 월별 월별 요약 SQL

month | amount 
----------------- 
'Jan-13' | 5801   -- = Project #1 + Project #2 + Project #3 
'Feb-13' | 23836   -- = Project #1 + Project #2 + Project #3 + Project #4 + Project #5 
'Mar-13' | 25070   -- ...and so on 
'Apr-13' | 30748   
'May-13' | 43216   
'Jun-13' | 51106 
'Jul-13' | 51106   
'Aug-13' | 52340 

projectTitle | completionDate | amount 
--------------------------------------- 
'Project #1' | 2013-01-12  | 1234 
'Project #2' | 2013-01-25  | 4567 
'Project #3' | 2013-02-08  | 8901 
'Project #4' | 2013-02-15  | 2345 
'Project #5' | 2013-02-20  | 6789 
'Project #6' | 2013-03-01  | 1234 
'Project #7' | 2013-04-12  | 5678 
'Project #8' | 2013-05-06  | 9012 
'Project #9' | 2013-05-20  | 3456 
'Project #10' | 2013-06-18  | 7890 
'Project #11' | 2013-08-10  | 1234 

예, 당신은 예를 들어 테이블이 7 월 데이터를 가지고 있지 않은 경우에도 나는 7 월을 포함 알 수 있습니다. 이상적으로, 예제 출력에서 ​​볼 수 있듯이 출력에는 여전히 7 월이 포함되지만 필요한 경우없이 살 수 있습니다.

답변

1

하위 쿼리를 사용하고 테이블 이름에 별칭을 사용하여 대답을 찾았습니다.

SELECT FORMAT(t1.completionDate,"mmm-yy") AS [month], (
     SELECT SUM(t2.amount) 
     FROM projects AS t2 
     WHERE MONTH(t2.completionDate) <= MONTH(t1.completionDate) 
    ) AS [amount] 
FROM projects AS t1; 
0

저는 달 단위로 그룹화하려고하면 도움이 될 것이라고 생각합니다. 월별로 그룹화하는 방법은 here을 참조하십시오. 그러면 월별 금액을 합산 할 수 있습니다.

희망이 아이디어가 도움이됩니다.

Sarajog

+0

죄송합니다. 그러나 이것은 도움이되지 않습니다. 나는 이미 월별로 그룹화 할 수 있지만 문제는 매달 전체에 지난 달 모두를 포함하게됩니다. –

+0

그 달에 완료된 모든 프로젝트의 합계를 얻기 위해 매월 반환하는 SQL 쿼리를 원하거나 정확히 원하는 것은 무엇입니까? – Sarajog

+0

나는 내가 그 질문에서했던 것보다 더 잘 설명 할 수 있다고 생각하지 않는다. 그러나 쿼리가 실행될 때 현재 연도의 현재 달까지 매월 한 행이 있어야합니다. 각 행의 금액 열은 해당 행의 월까지의 현재 연도의 모든 프로젝트 합계 여야합니다. –

0
Select Month(CompletionDate) as MthComplete, Year(CompletionDate) as YrComplete, AMT as Sum(Amount) 
From MyTable 
Group By Year(CompletionDate), Month(CompletionDate) 
Order By Year(CompletionDate), Month(CompletionDate) 

당신은 아마 당신이 당신의 출력 예에서 사용하고있는 년/월 형식을 얻기 위해 다른 열하지만 의지 그룹과 데이터 당신이 그것을 원하는 방식으로 말도 안되는해야합니다.

+0

불행히도 이것은 내가 찾고있는 것이 아니다. 산출의 각 행은 그 달의 합계가 아니라 모든 이전 달의 합계가되어야합니다. –