私のテーブルを説明することで、何をしたいのか説明しましょう。月々の遡及的更新
月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も歓迎されています。私が今言及した限界がありますか?
ありがとうございます!
このアップデートを実装できない特定の問題は何ですか? あなたはSQLのアップデートに苦しんでいますか?またはpowershellから実行していますか? – wolfrevokcats
私はそれを手動で行う方法を知っています。私はそれを自動化するロジックに苦労しています。 – gabuglc
あなたの質問は、PowerShellを使用してTeradataデータベースに対するクエリを自動化する方法です。 – Andrew