跳到主要內容 跳至補充內容

使用對應作為聯結的替代選項

QlikView 中的 Join 前置詞是結合資料模型中數個資料表格的極有效方法。一個不足之處是結合的表格可能較大,並造成效能問題。在您需要從另一個表格中查閱單一值時,Join 的替代選項是改為使用對應。這可讓您無需載入不必要的資料來拖慢下載計算,並且還可能造成計算錯誤,因為聯結可能變更表格中記錄的數目。

對應表格包含兩個資料行,比較欄位 (輸入) 和對應值欄位 (輸出)。

在此範例中,我們擁有順序表格 (Orders),並且需要知道客戶的國家或地區,這些資料儲存在客戶表格 (Customers) 中。

Orders data table
OrderID OrderDate ShipperID Freight CustomerID
12987 2007-12-01 1 27 3
12988 2007-12-01 1 65 4
12989 2007-12-02 2 32 2
12990 2007-12-03 1 76 3
Customers data table
CustomerID Name Country ...
1 DataSales Spain ...
2 BusinessCorp Italy ...
3 TechCo Germany ...
4 Mobecho France ...

為了查閱客戶的國家或地區 (Country),我們需要類似於下列項目的對應表格:

Country mapping table
CustomerID Country
1 Spain
2 Italy
3 Germany
4 France

命名為 MapCustomerIDtoCountry 的對應表格在指令碼中定義,如下所示:

MapCustomerIDtoCountry: Mapping LOAD CustomerID, Country From Customers ;

下一步是在載入順序表格時,使用 ApplyMap 函數套用對應。

Orders: S *, ApplyMap('MapCustomerIDtoCountry', CustomerID, null()) as Country From Orders ;

ApplyMap 函數的第三個參數用來定義在對應表格中找不到值時傳回的項目,在此情況下為 Null()

產生的表格將如下所示:

Result mapping table
OrderID OrderDate ShipperID Freight CustomerID Country
12987 2007-12-01 1 27 3 Germany
12988 2007-12-01 1 65 4 France
12989 2007-12-02 2 32 2 Italy
12990 2007-12-03 1 76 3 Germany

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!

加入分析現代化計畫

Remove banner from view

透過分析現代化程式進行現代化而不犧牲寶貴的 QlikView 應用程式。 按一下這裡 取得更多資訊或聯繫: ampquestions@qlik.com