2017-08-25 17 views
0

私のテーブルを説明することで、何をしたいのか説明しましょう。月々の遡及的更新

月1から

表IMEI_SALES - この表は毎月更新されます。 sale_date列は、すべての表の分(sale_date)です。したがって、同じsale_dateを持つ別のIMEIは存在しません。

imei    sale_date month tfm tfm1 tmf2 tfm3 
------   --------- ----- ---- ---- ---- ---- 
354205080163741 01/08/2017 201708 null null null null 
354205080163742 01/08/2017 201708 null null null null  
354205080163743 13/08/2017 201708 null null null null  

現在Month-

交通TABLE - ここで私は、トラフィックを得ました。同じ日付のimeiはありえません。このテーブルは毎月作成され、毎月削除されます。

imei    traffic_date tr_month 
------   --------- ----- 
354205080163741 01/08/2017 201708 
354205080163742 01/08/2017 201708  
354205080163743 13/08/2017 201708 

したがって、終了月。 IMEI_SALES TABLEとトラフィックテーブルがあります。私がする必要があるのは、tfmの列をトラフィックで更新することです。私はこれを手動で行うことができます。したがって、8月末のIMEI_SALESテーブルは次のようになります。

imei    sale_date month tfm  tfm1 tmf2 tfm3 
    ------   --------- ----- ----  ---- ---- ---- 
    354205080163741 01/08/2017 201708 01/08/2017 null null null 
    354205080163742 01/08/2017 201708 01/08/2017 null null null  
    354205080163743 13/08/2017 201708 13/08/2017 null null null 
  • TFM:Traffic_dateテーブルからtraffic_dateです。
  • tfm1:翌月のTraffic_dateテーブルのtraffic_dateで、 (9月)です。
  • tfm2:tfm1:次の2 ヶ月(10月)でTraffic_dateテーブルからtraffic_dateある
  • tfm3:tfm1:である(Nomvember)で3ヶ月 次Traffic_dateテーブルからtraffic_date

上限は現在の月+ 3です。来月に何が起こるか見てみましょう。

次の月 -

表IMEI_SALES。 9月から新しい行がここにあります。

imei    sale_date month tfm  tfm1 tmf2 tfm3 
------   --------- ----- ----  ---- ---- ---- 
354205080163741 01/08/2017 201708 01/08/2017 null null null 
354205080163742 01/08/2017 201708 01/08/2017 null null null  
354205080163743 13/08/2017 201708 13/08/2017 null null null 
354205080163741 01/09/2017 201709 null  null null null 
354205080132131 01/09/2017 201709 null  null null null 
354205080163425 13/09/2017 201709 null  null null null 

トラフィックテーブル - 以前のものは削除されます。

IMEI 354205080163741,354205080163742,354205080163743は、同じ日付と一致しており、sales_dateから3か月以内です。

IMEI 354205080132131は、異なる日付と一致し、sale_dateから3か月以内です。

IMEI 354205080163425トラフィックテーブルに一致がありません。

imei    traffic_date tr_month 
------   --------- ----- 
354205080163741 01/09/2017 201709 
354205080163742 01/09/2017 201709 
354205080163743 01/09/2017 201709 
354205080132131 02/09/2017 201709  
354243774312421 14/09/2017 201709 

IMEI_SALESテーブルを更新するときは、次のようになります。

imei    sale_date month tfm  tfm1  tmf2 tfm3 
------   --------- ----- ----  ----  ---- ---- 
354205080163741 01/08/2017 201708 01/08/2017 01/09/2017 null null 
354205080163742 01/08/2017 201708 01/08/2017 01/09/2017 null null  
354205080163743 13/08/2017 201708 13/08/2017 01/09/2017 null null 
354205080163741 01/09/2017 201709 01/09/2017 null  null null 
354205080132131 01/09/2017 201709 02/09/2017 null  null null 
354205080163425 13/09/2017 201709 null  null  null null 

たとえば、12月に私が言うと、9月から12月の同じ販売テーブルとトラフィックテーブルがあります。あなたは(9月交通、10月の交通、11月 交通と12月の交通)対9月に(AugustTraffic、9月の交通、10月の交通 と11月の交通)対8月中

  • 販売
  • 売上高と一致する必要があります(10月交通、11月と12月の交通 交通)VS月に

  • 販売(11月Trの対、11月に

  • 販売12月トラフィック)

  • 12月のトラフィックと12月のトラフィック。

これを自動化するには、Teradata sqlとPowershellを使用する必要があります。 Oracleも歓迎されています。私が今言及した限界がありますか?

ありがとうございます!

+0

このアップデートを実装できない特定の問題は何ですか? あなたはSQLのアップデートに苦しんでいますか?またはpowershellから実行していますか? – wolfrevokcats

+0

私はそれを手動で行う方法を知っています。私はそれを自動化するロジックに苦労しています。 – gabuglc

+0

あなたの質問は、PowerShellを使用してTeradataデータベースに対するクエリを自動化する方法です。 – Andrew

答えて

0

どのように現在テーブルを変更していますか?任意のPL/SQLプロシージャ? tfm、tfm1フィールドを更新するために現在のメカニズムを更新するトリガーを追加できます。

関連する問題