select '1234' as leccode,'요가' as lecname, '01' as clssday,'0900' as fromtime,'1200' as totime from dual
union all select '2345','골프', '01','1230','1800' from dual
union all select '3456','헬스', '01','1300','1500' from dual
)
, y as
(
select '2012001' as idnum,'1234' as leccode from dual
)
select * from y,t
where y.leccode=t.leccode
and fromtime <= 1230 --수강신청할려고 하는 강좌의 시작시간
and totime > 1230 --수강신청할려고 하는 강좌의 시작시간
and fromtime < 1800 --수강신청할려고 하는 강좌의 종료시간
and totime >= 1800 --수강신청할려고 하는 강좌의 종료시간
학생이 수강신청할려고 선택한 강좌가 이미 수강신청한 강좌와 시간이 겹치는지 확인하는 쿼리를 만들려고 하는데요..
이미 수강신청한 강좌의 시작,종료시간에 신청할려고하는 강좌의 시작시간,종료시간이 포함되는지 체크할려고 했는데.
가만 생각해 보니..골프같은 시간대는 체크가 안되더라구요..
where 조건을 어떻게 주어야 할까요?
테이블 설명을 드리면
t 테이블은 강좌정보 테이블입니다. 강좌코드,강좌명,요일,시작시간,종료시간 입니다.
y 테이블은 학생별 수강정보 테이블입니다. ID,강좌코드 입니다.
------------------------------------------------------------
그리고 t 테이블의 정보로 시간표를 만들려고 하는데.
위의 예제에서는 요일(clssday)은 같게 주었는데
원래는 아래와 같이 요일이 들어있습니다.t테이블로 시간표를 쿼리로 만드는게 가능한가요.
clssday 01은 월요일,02는 화요일,03은 수요일입니다.
WITH t AS
(
select '1234' as leccode,'요가' as lecname, '01' as clssday,'0900' as fromtime,'1200' as totime from dual
union all select '2345','골프', '02','1230','1800' from dual
union all select '3456','헬스', '03','1300','1500' from dual
)
select * from t
답변부탁드립니다~