2017-08-25 58 views
0

讓我通過解釋我的表格來解釋我想要的。每月追溯更新

月1 -

表IMEI_SALES - 此表每月更新。 sale_date列是所有表的min(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  

目前爲期一個月

業務表 - 在這裏,我得到了交通。同樣的日期也不可能有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的colums。我可以手動執行此操作。所以在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表下月 (9月)的traffic_date。
  • tfm2:tfm1:是從Traffic_date表中接下來的2 個月(10月)traffic_date
  • tfm3:tfm1:是從下一個3 個月(Nomvember)的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與相同的日子和從sale_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月份的銷售量和流量表上做相同的處理。你將不得不匹配八月

  • 銷售VS(AugustTraffic,月流量,月流量 和十一月交通)
  • 銷售在九月VS(月流量,月流量,月 交通和十二月交通)

  • 銷售在十月VS(十月交通,交通十一月和十二月 交通)

  • 銷售在十一月VS(十一月Tr的交通和12月交通)

  • 12月銷售與12月交通。

我需要使用Teradata sql和Powershell來自動執行此操作。甲骨文也受到歡迎。是否可以用我剛纔提到的限制?

非常感謝!

+0

什麼是防止實現此更新的具體問題? 您與更新sql鬥爭?或從PowerShell運行它? – wolfrevokcats

+0

我知道如何手動完成。我正在努力使邏輯自動化。 – gabuglc

+0

所以你的問題是如何對自動化使用PowerShell在Teradata數據庫的查詢? – Andrew

回答

0

您目前如何修改表?任何PL/SQL過程?可以添加一個觸發器,這將使更多的更新時修改或更新目前的機制來更新TFM,tfm1場