나는 이것을 사용할 것이다 :
SELECT Closing_Date = DATEADD(MONTH, DATEDIFF(MONTH, 0, Closing_Date), 0),
Category,
COUNT(Status) TotalCount
FROM MyTable
WHERE Closing_Date >= '2012-02-01'
AND Closing_Date <= '2012-12-31'
AND Defect_Status1 IS NOT NULL
GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, Closing_Date), 0), Category;
이것은 매월 1 일에 그룹화되므로
`DATEADD(MONTH, DATEDIFF(MONTH, 0, '20130128'), 0)`
줄 것이다 '20130101'
. 일반적으로 날짜를 날짜로 유지하므로이 방법을 선호합니다.
또는 다음과 같이 사용할 수 있습니다.
SELECT Closing_Year = DATEPART(YEAR, Closing_Date),
Closing_Month = DATEPART(MONTH, Closing_Date),
Category,
COUNT(Status) TotalCount
FROM MyTable
WHERE Closing_Date >= '2012-02-01'
AND Closing_Date <= '2012-12-31'
AND Defect_Status1 IS NOT NULL
GROUP BY DATEPART(YEAR, Closing_Date), DATEPART(MONTH, Closing_Date), Category;
실제로 원하는 출력이 무엇인지에 따라 다릅니다. (귀하의 예에서 마감 연도는 필요하지 않지만 날짜 범위가 연도 경계를 넘으면 그럴 수 있습니다).