2017-05-20 9 views
0

テーブルt1のテーブルt2のように出力を生成するSQL(プロシージャではなくSQL)を作成します。これは、テーブルt1とt2との間でデータ検証を行うために必要です。このロジックに基づいてテーブルt1からデータを抽出し、テーブルt2と比較したい日付チェーンロジックを持つSQLが必要

私は2つのテーブルt1 & t2を持っています。 T1は、このようなデータを持っている:

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 

データの表2に日付チェーンが維持されるようになります:使用

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

データベースは、Oracle Exadataのです。

+0

実際の質問は何ですか? –

+0

テーブルt1からテーブルt2のように出力を生成するSQL(プロシージャではなくSQL)を書きたいと思います。 これは、テーブルt1とt2の間で何らかのデータ検証を行うために必要です。このロジックに基づいてテーブルt1からデータを抽出し、テーブルt2と比較したい – aakash

+0

リストに日付がありませんか? – Utsav

答えて

0

私は、StartDateとEndDateがテーブル内のitem_codeに関連付けられている最小値と最大値であると仮定します。その場合、これはt1からt2を得る1つの方法です。

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

関連する問題