SELECT M.MEMBER_ID MEMBER_ID,
TO_CHAR(ADD_MONTHS(M.INCOME_DATE,LEVEL - 1),'YYYYMM') 월
FROM (
SELECT MEMBER_ID,
MIN(INCOME_DATE) INCOME_DATE
FROM S_INCOME_INFO
GROUP BY MEMBER_ID
) M
CONNECT BY ADD_MONTHS(M.INCOME_DATE,LEVEL - 1) <= SYSDATE
제 쿼리는 위와 같습니다.
S_INCOME_INFO 라는 테이블에서 MEMBER_ID 별로 최소 날짜를 가져와서 현재날짜와
비교해 그 사이의 월을 구했습니다.
문제는 이 쿼리는 별로 문제가 없는데
M.MEMBER_ID 로 그룹을 다시 묶고, 월이라는 부분을 COUNT 하면 발생합니다.
제가 구하고 싶은 것은 MEMBER_ID 별로 처음 날짜와 현재 날짜 사이의 월의 갯수인데,
MEMBER_ID 로 다시 그룹을 지으면 실행은 되지만 결과가 나오지 않습니다.
조언 부탁드립니다.
|