카테고리 없음

영업일(평일) 기준으로 만드는 쿼리~ 오늘 부터 D 데이 영업일

르무엘 2022. 5. 31. 18:30

 영업일(평일)기준으로 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