database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41675 게시물 읽기
No. 41675
반차(연차) 행 구분
작성자
IT재벌(IT재벌)
작성일
2018-12-28 15:01ⓒ
2018-12-28 15:11ⓜ
조회수
3,269

항상 도움을 받는 IT초보 입니다..

 

저희 DB에 연차를 신청하는 경우

 

사번 | 시작일 | 종료일 | 시작일 반차 사용여부 | 시작일 반차 종류 | 종료일 반차 사용여부 | 종료일 반차 종류

 

의 형태로 저장이 됩니다.

 

예를 들어, 20181210 ~ 20181212 까지 휴가인데 시작일 오후 반차 라고 하면

 

1 | 20181210 | 20181212 | Y | A | N | N 로 저장이 됩니다.

 

20181210 ~ 20181213 까지 휴가인데 시작일 오후 반차, 종료일 오전 반차 라고 하면

 

1 | 20181210 | 20181213 | Y | A | Y | M

 

 

이것을 뷰로 만들면서 날짜별 행으로 나누고자 하는데 가능할런지요????

 

20181210 ~ 20181212 까지 휴가인데 시작일 오후 반차 라고 하면

1 | 20181210 | 20181210 | A

1 | 20181211 | 20181211 | N

1 | 20181212 | 20181212 | N

 

20181210 ~ 20181213 까지 휴가인데 시작일 오후 반차, 종료일 오전 반차 라고 하면

1 | 20181210 | 20181210 | A

1 | 20181211 | 20181211 | N

1 | 20181212 | 20181212 | N

1 | 20181213 | 20181213 | M

 

이런 식으로 날짜를 나누면서 각 해당일의 반차여부를 표현하는 쿼리를 만들고 싶습니다.

 

 

 

이 글에 대한 댓글이 총 2건 있습니다.

WITH t AS
(
SELECT 1 id, '20181210' sdt, '20181212' edt, 'Y' syn, 'A' stp, 'N' eyn, 'N' etp FROM dual
UNION ALL SELECT 2, '20181210', '20181213', 'Y', 'A', 'Y', 'M' FROM dual
UNION ALL SELECT 3, '20181210', '20181213', 'N', 'N', 'Y', 'M' FROM dual
UNION ALL SELECT 4, '20181210', '20181213', 'N', 'N', 'N', 'N' FROM dual
)
SELECT id
     , TO_CHAR(sdt + lv - 1, 'yyyymmdd') dt
     , DECODE (sdt + lv - 1, sdt, stp, edt, etp, 'N') tp
  FROM (SELECT id
             , TO_DATE(sdt, 'yyyymmdd') sdt
             , TO_DATE(edt, 'yyyymmdd') edt
             , syn, stp, eyn, etp
          FROM t
        )
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 99)
 WHERE lv <= edt - sdt + 1
 ORDER BY id, dt
;

마농(manon94)님이 2018-12-28 16:42에 작성한 댓글입니다.
이 댓글은 2018-12-28 16:42에 마지막으로 수정되었습니다.

앗.. 댓글이 늦어졌네요...

댓글을 달았다고 생각했습니다.

 

항상 마농님께 큰 감사 드립니다.

IT재벌(IT재벌)님이 2019-01-24 14:33에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41679is not null [5]
아벨의꿈
2019-01-08
2871
41677ORACLE 접근하여 table 수정한 사람의 IP 및 이력을 조회 하려면? [2]
송영일
2019-01-07
3118
41676오라클 데이터베이스 질문드립니다.
문영모
2018-12-28
2939
41675반차(연차) 행 구분 [2]
IT재벌
2018-12-28
3269
41673insert문장을 추출 하고 싶습니다.!!! [1]
송영일
2018-12-26
3146
41672저장된 컬럼값내의 변수 처리(대입) 문의드립니다. [1]
부러운달
2018-12-21
2821
41670오라클에서 채번 관련 문의 드려요 sequence vs max + 1 [2]
소유니
2018-12-20
4025
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다