2017-05-20 2 views
0

테이블 t1의 테이블 t2에서와 같이 출력을 생성하는 SQL (프로 시저가 아니라 SQL)을 작성하고 싶습니다. 이것은 테이블 t1과 t2 사이에서 일부 데이터 유효성 검사를 수행하는 데 필요합니다. 이 논리를 기반으로 테이블 t1에서 데이터를 추출하고 테이블 t2와 비교하려고합니다.날짜 체인 논리가있는 SQL이 필요합니다

두 테이블 t1 & t2가 있습니다. T1은 다음과 같이 데이터를 가지고 테이블 2

Item Id Date   Item code 
A   01/01/2017  10 
A   02/01/2017  10 
A   03/01/2017  10 
... 
A   15/02/2017  11 
A   23/02/2017  11 
... 
A   25/06/2017  12 

데이터는 날짜 체인이 유지되도록 방식으로 진행됩니다 사용

Item ID Start Date End date Item Code 
A   20170101 20170214 10 
A   20170215 20170624 11 
A   20170625 99991231 12 

데이터베이스는 오라클 엑사입니다.

+0

실제 질문은 무엇입니까? –

+0

테이블 t1에서 테이블 t2와 같은 출력을 생성하기 위해 SQL (프로 시저가 아니라 SQL)을 작성하려고합니다. 테이블 t1과 t2 사이에서 일부 데이터 유효성 검사를 수행해야합니다. 이 논리를 기반으로 테이블 t1에서 데이터를 추출하고 테이블 t2와 비교하려고합니다. – aakash

+0

목록에 날짜가 누락 되었습니까? – Utsav

답변

0

StartDate 및 EndDate가 테이블의 item_code와 관련된 최소 및 최대 날짜라고 가정합니다. 이 경우 - 이것은 t1에서 t2를 얻는 한 가지 방법입니다.

select 
    (
     select min(t1.item_date) 
     from t1 
     where t1.item_code = sel1.item_code 
    ) min_date, 
    (
     select max(t1.item_date) 
     from t1 
     where t1.item_code = sel1.item_code 
    ) max_date, 
    sel1.item_code 
from (
    select distinct item_code 
    from t1 
) sel1 
+0

시작 날짜와 종료 날짜는 기본적으로 항목 코드가이 많은 기간 동안 항목과 관련이 있다고 말합니다. 따라서 항목 코드 10은 2011 년 1 월 1 일부터 2014 년 2 월 14 일까지 유효합니다. – aakash