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 41033 게시물 읽기
No. 41033
달력에 사용할 쿼리 질문입니다.
작성자
정준민(over200k)
작성일
2015-12-16 17:35
조회수
8,912

WITH TEMP1 -- 공개일정 테이블

AS (

SELECT '201512010800' AS STARTDAY, '201512081100' AS ENDDAY FROM DUAL -- 12월01일 8시부터 ~ 12월08일 11시까지

UNION

SELECT '201512150800' AS STARTDAY, '201512171100' AS ENDDAY FROM DUAL -- 12월15일 8시 부터 ~ 12월17일 11시까지

)

SELECT STARTDAY, ENDDAY FROM TEMP1

-- 제일 처음 달력 쿼리

 

달력에 12월01일 8시부터 ~ 12월08일 11시까지 달력에 표시되어 있고 또 12월15일 8시 부터 ~ 12월17일 11시까지 기간이 표시 되어있습니다.

 

그러면 신청자가

 

달겨에 표시된 기간안에서, 예를 들어 12월02일 8시부터 ~ 12월03일 11시까지 신청을 해서 신청 테이블에 저장이 되어있다는 가정하에,

 

달력을 재 조회시에는

 

12월01일 8시부터 ~ 12월02일 8시까지 표시가 되어야 하고,

 

12월03일 11시부터 ~ 12월08일 11시까지 표시,

 

12월15일 8시 부터 ~ 12월17일 11시까지 기간에는 신청을 안해서 그대로 표시가 되어 져야 합니다.

 

공개테이블에는 시작일자, 종료일자

 

신청테이블에도 시작일자, 종료일자

 

이렇게 구성되어있는데 쿼리를 어떻게 조작해야 할까요...

 

 

 

 

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

WITH temp1 AS    -- 공개일정
(
SELECT '201512010800' startday, '201512081100' endday FROM dual
UNION ALL SELECT '201512150800', '201512171100' FROM dual
)
, temp2 AS    -- 신청내역
(
SELECT '201512020800' startday, '201512031100' endday FROM dual
)
SELECT sdt, edt
  FROM (SELECT dt sdt
             , LEAD(dt) OVER(ORDER BY dt) edt
             , SUM(SUM(st)) OVER(ORDER BY dt) st
          FROM (SELECT startday dt, 1 st FROM temp1
                UNION ALL SELECT   endday, -1 FROM temp1
                UNION ALL SELECT startday, -1 FROM temp2
                UNION ALL SELECT   endday,  1 FROM temp2
                )
         GROUP BY dt
        )
 WHERE st = 1
;

마농(manon94)님이 2015-12-17 10:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41036컬럼값 비교.. 도움부탁드려요!! [3]
꿈희
2015-12-22
9510
41035레프트 조인에서 서브쿼리 사용 방법 [2]
정재봉
2015-12-21
8898
41034COMMIT 명령 후 멈춤현상
크리리리
2015-12-18
8506
41033달력에 사용할 쿼리 질문입니다. [1]
정준민
2015-12-16
8912
41032테이블스페이스 관련 질문입니다 ㅠㅠ 도와주세요~ [1]
지용이
2015-12-15
8774
41031프로시져 문의드립니다. [2]
땡구리
2015-12-14
9391
41030오라클! 어떻게 관리 해야 합니까?? [1]
지용이
2015-12-11
8647
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다