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 38856 게시물 읽기
No. 38856
시설사용신청
작성자
궁금합니다.
작성일
2011-09-14 16:32
조회수
4,080

 

안녕하십니까.
쿼리를 만들고 있는데 머리가 어질어질해서 질문을 올립니다.

예를들면
 

입력된 데이터
호실 : 1111호실
사용기간 : 2011.11.10 17:00 ~ 2011. 11.12 12:00
이 입력되어 있을 경우 입력시 중복체크를 하려고 합니다.

현재)
select 중복값 from 입력된데이터
 where 사용기간(from) between 입력(from)-0.01 and 입력(to)-0.01 or 사용기간(to) between 입력(from)-0.01 and 입력(to)-0.01
union
select 중복값 from 입력된데이터
 where 사용기간(from) between 입력(from)-0.01 and 입력(to)+0.01 or 사용기간(to) between 입력(from)-0.01 and 입력(to)-0.01
위와 같이 했을경우 예외사항이 발생하네요. ^^;

고수님들 부탁드립니다.

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

대충 생각나는건 요정도 뿐이네요

 

 

 

WITH tb(room_no, fr_dt, to_dt) AS
(
  SELECT '1111', '20110801', '20110803' FROM dual UNION ALL
  SELECT '1111', '20110803', '20110804' FROM dual UNION ALL
  SELECT '1111', '20110805', '20110806' FROM dual
)
, array_tb(chk_dt) AS
(
  SELECT LEVEL -1
    FROM dual
 CONNECT BY LEVEL < 100
)
, dupchk_tb(room_no, fr_dt, to_dt, chk_dt) AS
(
  SELECT room_no, fr_dt, to_dt, TO_CHAR(TO_DATE(fr_dt, 'YYYYMMDD') + b.chk_dt, 'YYYYMMDD')
    FROM tb a
       , array_tb b
   WHERE chk_dt < TO_DATE(to_dt, 'YYYYMMDD') - TO_DATE(fr_dt, 'YYYYMMDD')
)
  SELECT DISTINCT room_no, fr_dt, to_dt
    FROM dupchk_tb
   WHERE chk_dt BETWEEN '20110803' AND TO_CHAR(TO_DATE('20110805', 'YYYYMMDD') - 1, 'YYYYMMDD')
;

이용운(cloudlyu)님이 2011-09-14 18:07에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38859비효율적인 쿼리 튜닝 부탁드립니다. [2]
jinkuidong
2011-09-15
6333
38858유닉스 오라클에서 윈도우 서버 오라클로 이전 [3]
임두환
2011-09-14
5053
38857합계금액 추출 쿼리 질문 드려요 [5]
이순욱
2011-09-14
8543
38856시설사용신청 [1]
궁금합니다.
2011-09-14
4080
38855모델링 질문입니다. [1]
저글링
2011-09-14
3720
38854특정조건 만족하는 칼럼의 카운트? [2]
강영호
2011-09-13
3762
38853sql loader 로 개행을 포함한 문자 그대로 테이블에 저장하는 방법이 있는지 알려주세요
sybase맨
2011-09-10
4941
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다