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 40640 게시물 읽기
No. 40640
행 근태 정보를 열 근태 정보로 전환 가능할까요?
작성자
나그네
작성일
2014-12-09 16:11ⓒ
2014-12-09 16:11ⓜ
조회수
6,261

예를 들어 A라는 사람이

2014년 1월 27일 (월요일)- 평일 근무

2014년 1월 28일 (화요일)- 평일 특별휴가

2014년 1월 29일 (수요일)- 평일 특별휴가

2014년 1월 30일 (목요일)- 설날

2014년 1월 31일 (금요일)- 설날

2014년 2월   1일 (토요일)- 휴일

2014년 2월 2일 (일요일)- 휴일

2014년 2월 3일 (월요일)- 평일 연차

2014년 2월 4일 (화요일)- 평일 근무

이러한 데이터를 연속된 휴일만  아래와 같이 출력하고자 합니다.

2014년 1월 28~2월 3일 총휴일 3일(특별휴가 2일, 연차 1일)  이러한 식으로 출력 가능할까요?

 

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

WITH t AS
(
SELECT 'A' id, '20140127' dt, '평일' gbn, '근무' gun FROM dual
UNION ALL SELECT 'A', '20140128', '평일', '특별휴가' FROM dual
UNION ALL SELECT 'A', '20140129', '평일', '특별휴가' FROM dual
UNION ALL SELECT 'A', '20140130', '설날', ''         FROM dual
UNION ALL SELECT 'A', '20140131', '설날', ''         FROM dual
UNION ALL SELECT 'A', '20140201', '휴일', ''         FROM dual
UNION ALL SELECT 'A', '20140202', '휴일', ''         FROM dual
UNION ALL SELECT 'A', '20140203', '평일', '연차'     FROM dual
UNION ALL SELECT 'A', '20140204', '평일', '근무'     FROM dual
UNION ALL SELECT 'A', '20140205', '평일', '연차'     FROM dual
)
SELECT id
     , MIN(sdt) ||'~'|| MAX(edt) ||
       ' 총휴일 '|| SUM(cnt) ||'일('||
       wm_concat(gun||' '||cnt||'일') ||')' x
  FROM (SELECT id, grp, gun
             , MIN(dt) sdt
             , MAX(dt) edt
             , COUNT(gun) cnt
          FROM (SELECT id, dt, gbn, gun
                     , TO_DATE(dt, 'yyyymmdd')
                     - ROW_NUMBER() OVER(PARTITION BY id ORDER BY dt) grp
                  FROM t
                 WHERE (gun != '근무' OR gbn != '평일')
                   AND id = 'A'
                )
         GROUP BY id, grp, gun
        )
 WHERE gun IS NOT NULL
 GROUP BY id, grp
;

마농(manon94)님이 2014-12-09 19:01에 작성한 댓글입니다.
이 댓글은 2014-12-10 14:53에 마지막으로 수정되었습니다.

너무나 감사합니다. 좋은 하루 되세요~

나그네님이 2014-12-10 09:54에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40643VBscript로 Oracle DB 연동시 한글 깨짐 문제 해결 요청 ㅠㅠ
김병근
2014-12-10
11902
40642순위를 메기려합니다. [1]
김진수
2014-12-10
6294
40641안녕하세요 오라클 쿼리에 대해 질문 드립니다. [2]
투루로맨스
2014-12-10
6280
40640행 근태 정보를 열 근태 정보로 전환 가능할까요? [2]
나그네
2014-12-09
6261
40639DBLINK를 Argument로 쓸수있는 방법이 궁금합니다. [1]
이종민
2014-12-08
6675
40638월별 대출현황 집계 쿼리 질문입니다. [3]
황준석
2014-12-08
6827
40637열을 행으로 바꾸는 것 질문입니다.ㅠㅠ [1]
신종민
2014-12-08
6792
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다