영업일(평일)기준으로 D-30, D-7 등을 구해보자
ST_DT를 오늘 기준 날짜로 잡고
TO_DT 를 해당 날짜로 잡아본다.
CONNECT BY는 연속된 숫자를 조회활때 활용하고
LEVEL은 연속된 숫자의 연계 순위를 의미한다.
자 그리고 아래 쿼리를 좀더 살펴보자
해당날짜(to_DT)에서 오늘날짜(ST_DT)를 뺀 것으로 level을 만든다
해당날짜(to_DT)는 7인 토요일이나 1인 월요일이 아니다.
고로 평일만 집계가 된다.
SELECT COUNT(1) CNT
FROM
( SELECT ST_DT + LEVEL -1
FROM ( SELECT TRUNC(SYSDATE) ST_DT,
TRUNC(TO_DATE('2022-07-11','YYYY-MM-DD') ) TO_DT
FROM DUAL
)
WHERE TO_CHAR(ST_DT + LEVEL -1, 'D') != 7
AND TO_CHAR(ST_DT + LEVEL -1, 'D') != 1
CONNECT BY LEVEL <= TO_DT - ST_DT + 1);
요거 기준으로 다음 번에는 펑션을 만들어 보려 한다~~
LIST