쿼리질문드립니다. 0 2 551

by 해피 [SQL Query] [2016.07.25 16:20:40]


안녕하세요 

아래와 같은 두개의 테이블을 번호로 조인하여 발생일에 해당하는 유효기간에 있는 값을 찾으려 합니다.

쿼리를 어떻게 짜야 할지 도움 부탁드립니다.

 

table a

아이디 발생일 번호
a 20160320 11
b 20160501 12
c 20160105 13

table b

번호 유효시작일 유효종료일
11 20160101 20160220 홍길동
11 20160221 20160325 아무개
11 20160325 99999999 김씨
12 20160101 20160430 이씨
12 20160501 99999999 박씨
13 20160101 20160320 노씨

 

결과

아이디 발생일 번호
a 20160320 11 아무개
b 20160501 12 박씨
c 20160105 13 노씨
by jkson [2016.07.25 16:42:21]
with t1 as
(
select 'a' id,  '20160320' dt,  '11' no from dual union all 
select 'b' id,  '20160501' dt,  '12' no from dual union all 
select 'c' id,  '20160105' dt,  '13' no from dual 
)
, t2 as
(
select '11' no,  '20160101' fdt,  '20160220' tdt, '홍길동' nm  from dual union all
select '11' no,  '20160221' fdt,  '20160325' tdt, '아무개' nm  from dual union all
select '11' no,  '20160325' fdt,  '99999999' tdt, '김씨' nm    from dual union all
select '12' no,  '20160101' fdt,  '20160430' tdt, '이씨' nm    from dual union all
select '12' no,  '20160501' fdt,  '99999999' tdt, '박씨' nm    from dual union all
select '13' no,  '20160101' fdt,  '20160320' tdt, '노씨' nm    from dual
)
select a.id, a.dt, a.no, b.nm from t1 a, t2 b
where a.no = b.no
and a.dt between b.fdt and b.tdt

 


by 해피 [2016.07.25 18:10:11]

와 감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입