WORKING DAY를 구하기
(공휴일, 주말 제외 근무일수)
SELECT
COUNT(1) WORKING_DAYS
--*
FROM
(
SELECT
TO_CHAR(start_dt + level - 1,'YYYYMMDD') dates,
TO_CHAR(start_dt + level - 1,'D') d
FROM
(
SELECT
TO_DATE('20200901','YYYYMMDD') AS start_dt, --시작일자
TO_DATE('20201010','YYYYMMDD') AS end_dt --종료일자
FROM dual
)
CONNECT BY
level <= end_dt - start_dt + 1
) a, --시작,종료기간 일자를 구한다.
(
SELECT
holiday_dt
FROM sys_holiday
WHERE holiday_dt BETWEEN '20200901' AND '20201010' --시작,종료일자
) b --공휴일테이블에서 기간을 구한다.
WHERE
a.dates = b.holiday_dt (+)
AND a.d NOT IN ('1', '7') --1: 일요일 7:토요일
AND b.holiday_dt IS NULL
ORDER BY a.dates;
반응형
'Oracle' 카테고리의 다른 글
Oracle - 테이블 코멘트 조회 (0) | 2021.12.30 |
---|---|
Oracle RAC Jdbc Connection String 설정 (0) | 2021.10.18 |
Oracle SCOTT 계정 활성화 하기 (0) | 2020.10.10 |
CTAS 쿼리 테이블 복사 (0) | 2020.10.07 |
[SQL] ORACLE, MYSQL, MSSQL 숫자 세자리 콤마 표시 (0) | 2020.02.03 |