테이블(TAB)에는 날짜(CONDATE)와 건수(CNT)가 있습니다. 예들 들어 올해 월별 건수를 구할 때 4월부터는 아직 데이터가 없으니까 0으로 표시되게 하고 싶은데요 1월 2월 3월 4월 ..... 12월 10 15 10 0............0 이런식으로 월항목도 함께 출력하려면 쿼리를 어떻게 짜야 할지.. 고수님들의 조언 부탁드립니다.
SELECT IFNULL(SUM(CASE mm WHEN '01' THEN cnt END), 0) "01" , IFNULL(SUM(CASE mm WHEN '02' THEN cnt END), 0) "02" , IFNULL(SUM(CASE mm WHEN '03' THEN cnt END), 0) "03" , IFNULL(SUM(CASE mm WHEN '04' THEN cnt END), 0) "04" , IFNULL(SUM(CASE mm WHEN '05' THEN cnt END), 0) "05" , IFNULL(SUM(CASE mm WHEN '06' THEN cnt END), 0) "06" , IFNULL(SUM(CASE mm WHEN '07' THEN cnt END), 0) "07" , IFNULL(SUM(CASE mm WHEN '08' THEN cnt END), 0) "08" , IFNULL(SUM(CASE mm WHEN '09' THEN cnt END), 0) "09" , IFNULL(SUM(CASE mm WHEN '10' THEN cnt END), 0) "10" , IFNULL(SUM(CASE mm WHEN '11' THEN cnt END), 0) "11" , IFNULL(SUM(CASE mm WHEN '12' THEN cnt END), 0) "12" FROM (SELECT DATE_FORMAT(condate, '%m') mm , SUM(cnt) cnt FROM t WHERE condate >= '2017-01-01' AND condate < '2018-01-01' GROUP BY DATE_FORMAT(condate, '%m') ) a ;
마농님 진심 감사드립니다 (__)