2017-09-20 15 views
-2

私は以下に述べる問題があり、2百万行あるのでSQLなしではできません。日付範囲の隙間を埋めてください -

私はテーブルTable1を持っています。ここには指定された期間のプロモーション価格のitem/locがあります。

+-----------------------------------------------------------+ 
| Item | Location | Startdate | EndDate | Promoted Price | 
+-------+----------+-----------+-----------+----------------+ 
| Item1 | Loc1  | 6/23/2015 | 6/24/2015 | 22    | 
| Item1 | Loc1  | 7/10/2015 | 7/17/2015 | 30    | 
| Item1 | Loc1  | 7/24/2015 | 7/31/2015 | 30    | 
| Item2 | Loc2  | 6/21/2015 | 8/7/2015 | 25    | 
| Item2 | Loc2  | 8/28/2015 | 9/4/2015 | 27    | 
| Item2 | Loc2  | 9/11/2015 | 9/18/2015 | 28    | 
+-------+----------+-----------+-----------+----------------+ 

表2:私は表1に

表1を与えられたギャップを埋めるために使用しなければならない2017 - また、私は、私は2015年から各項目/ LOCのためのベース価格を持っている別のテーブルTable 2を持っています

+--------------------------------------------------------+ 
| Item | Location | Startdate | EndDate | Full_Price | 
+-------+----------+-----------+------------+------------+ 
| Item1 | Loc1  | 1/1/2015 | 12/31/2017 | 32   | 
| Item2 | Loc2  | 1/1/2015 | 12/31/2017 | 24   | 
| Item3 | Loc3  | 1/1/2015 | 12/31/2017 | 54   | 
| Item4 | Loc4  | 1/1/2015 | 12/31/2017 | 67   | 
| Item5 | Loc5  | 1/1/2015 | 12/31/2017 | 39   | 
| Item6 | Loc6  | 1/1/2015 | 12/31/2017 | 48   | 
| Item7 | Loc7  | 1/1/2015 | 12/31/2017 | 63   | 
| Item8 | Loc8  | 1/1/2015 | 12/31/2017 | 52   | 
| Item9 | Loc9  | 1/1/2015 | 12/31/2017 | 51   | 
+-------+----------+-----------+------------+------------+ 

結果は次のようにする必要があります:

| Item | Location | Startdate | EndDate | Promoted Price | 
+-------+----------+-----------+-----------+----------------+ 
| Item1 | Loc1 | 6/23/2015 | 6/24/2015 | 22    | 
| Item1 | Loc1 | 6/25/2015 | 7/9/2015 | 32    | 
| Item1 | Loc1 | 7/10/2015 | 7/17/2015 | 30    | 
| Item1 | Loc1  | 7/18/2015 | 7/23/2015 | 32    | 
| Item1 | Loc1  | 7/24/2015 | 7/31/2015 | 30    | 

答えて

0

どのようなギャップがありますか? 「Item1」と「Loc1」のフィルタリングのようです。

+0

こんにちはジェシー、私は最初のテーブル(テーブル1)の行1と2を見ることができます。 2015年6月25日から2015年7月9日まで、新しいレコードを作成する必要があります。このレコードでは、ギャップのデフォルト値であるテーブル2から値を取る必要があります。 – user6777467

0

ありがとうございました。私はこの問題をLead()関数を使って解決することができました。

関連する問題