안녕하세요.
현재 월별 통계 쿼리를 작성하고 있습니다.
제가 작성한 쿼리를 호출하면 4월에만 데이터가 있기 때문에
4월것만 나옵니다.
제가 원하는 것은 1~12월에 값이 없을 경우에는 0을 넣어서 통계가 나오게 만들고 싶습니다. (아래표처럼 만들고 싶습니다.)
답변해주시면 정말 감사하겠습니다.
월 | 값 |
1월 | 0 |
2월 | 0 |
3월 | 0 |
4월 | 2 |
5월 | 0 |
6월 | 0 |
7월 | 0 |
8월 | 0 |
9월 | 0 |
10월 | 0 |
11월 | 0 |
12월 | 0 |
SELECT
DATEPART(MONTH, CreatedDate) AS MONTH
,COUNT(*) AS VAL
FROM DrainageWater
WHERE CreatedDate >='2020-01-01'
AND CreatedDate <= '2020-12-31'
GROUP BY DATEPART(MONTH, CreatedDate)
WITH month_t AS ( SELECT 1 mm UNION ALL SELECT mm + 1 mm FROM month_t WHERE mm < 12 ) --, DrainageWater AS --( --SELECT '2020-04-01' CreatedDate --UNION ALL SELECT '2020-04-02' --) SELECT a.mm , ISNULL(b.cnt, 0) cnt FROM month_t a LEFT OUTER JOIN (SELECT DATEPART(MONTH, CreatedDate) mm , COUNT(*) cnt FROM DrainageWater WHERE CreatedDate >= '2020-01-01' AND CreatedDate < '2021-01-01' GROUP BY DATEPART(MONTH, CreatedDate) ) b ON a.mm = b.mm ;