빈 날짜에 0 을 알아서 넣어줄 수 있을까요? 0 2 2,802

by c.jun [2008.12.23 16:06:17]


안녕하세요.
간단할것 같은데 제가 초보라 아직 잘 모르겠네요.
고수님들 가르침 좀 주세요 ^^

사용자가 지정한 범위의 날짜 안에 있는 데이터의 갯수를 그룹핑하여 카운팅 할때,
결과에서 빈 날짜는 0이 들어 갈 수 있게 하는 방법이 있을까요?
예를들어 아래 간단한 쿼리를 보면..

SELECT
  DATE,
  COUNT(DATE) AS CNT
FROM SVC
WHERE
  AND DATE >= ’20081201’
  AND ’20081207’ >= DATE
GROUP BY DATE

결과는 아래와 같이 나오겠죠.

DATE CNT
20081201 3
20081204 2
20081207 4
 
저는 이렇게 나오기를 원합니다.
DATE CNT
20081201 3
20081202 0
20081203 0
20081204 2
20081205 0
20081206 0
20081207 4

가능할까요?
쿼리를 어떻게 짜야 하는지 알려주세요~!

by 호야 [2008.12.23 16:22:50]
SELECT
DATE,
NVL(COUNT(DATE),0) AS CNT
FROM SVC A RIGHT JOIN
(SELECT TO_CHAR(ADD_MONTHS(TO_DATE('200701','YYYYMM'),LEVEL-1) ,'YYYYMM') DATE
from dual
CONNECT BY LEVEL<=MONTHS_BETWEEN(TO_DATE('200707','YYYYMM'),TO_DATE('200701','YYYYMM'))+1) B ON WHERE A.DATE=B.DATE)
WHERE
AND DATE >= '20081201'
AND '20081207' >= DATE
GROUP BY DATE

-_- 냠냠.. 왜 이렇게 짰을 까용??
일딴은 검색할 월이 들어 오는 값을
시작값 :200701
종료값 : 200707
일때의 sql입니다.. 저 부분은 알아서 고치세욤.ㅎ
더 짧게 될려나..-_- 최소 io가 나오게 하고 싶은디

by 호야 [2008.12.23 16:23:48]
알리아스 오류 나것네.-_- 컬럼에 알리아스 넣어 주세욤
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입