QlikView - 迴圈引用



迴圈引用發生在我們能夠透過兩個或多個不同的路徑從一個表遍歷到另一個表時。這意味著您可以使用一個列直接將 Table1 與 Table2 連線,或者您也可以先將 Table1 與 Table3 連線,然後將 Table3 與 Table2 連線。這可能導致資料模型形成的輸出結果不正確,該資料模型載入所有這三個表。一旦 QlikView 識別到迴圈引用,它就會阻止將此類資料載入到其記憶體中。

輸入資料

讓我們考慮以下三個 CSV 資料檔案,它們用作進一步說明的輸入。

SalesCountries:
ProductID,ProductCategory,Country,SaleAmount
1,Outdoor Recreation,Italy,4579
2,Clothing,USA,4125
3,Costumes & Accessories,South Korea,6521
4,Athletics,Japan,4125
5,Personal Care,Brazil,5124
6,Arts & Entertainment,China,1245
7,Hardware,South America,456
8,Home & Garden,Peru,241
9,Food,India,1247
10,Home & Garden,Singapore,5462
11,Office Supplies,Hungary,577

ProductCountry:
ProductID, Country
3,Brazil
3,China
2,Korea
1,USA
2,Singapore
7,Sri Lanka
1,Italy

載入指令碼

我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按Ctrl+E 呼叫。選擇選項表格檔案並瀏覽輸入檔案。

1_cr_load_script

資料載入

建立上述指令碼後,我們使用命令Ctrl+R 將資料載入到 QlikView 的記憶體中。這時,我們會收到錯誤提示,提示載入的表中存在迴圈。

2_warning

資料模型

為了找到上述警告的確切原因,我們可以使用表格檢視器的選單命令 - Ctrl+T 檢視資料模型。出現以下螢幕,清楚地顯示了迴圈引用。此處,RegionCountry 和 SalesRegion 之間的連線可以使用欄位Region 直接實現。它也可以透過首先轉到表 ProductCountry,使用欄位Country,然後將 ProdcutID 與 Salesregion 對映來實現。

3_cr_data_model

解決迴圈引用

可以透過重新命名資料集中的一些列來解決上述迴圈引用,以便 QlikView 不使用列名在表之間自動形成關聯。為此,我們將 RegionCountry 中的 country 列重新命名為 SalesCountry。在資料集 ProdcuCountry 中,我們將 Country 列重新命名為 ProductCountry。

4_cr_load_script_rectified

修正後的資料模型

重新命名上述列後的修正資料模型可以使用命令Ctrl+T 檢視。現在我們可以看到表之間的關係不再形成迴圈。

5_cr_data_model_rectified

Ctrl+R 重新載入資料不再出現警告,我們可以使用這些資料建立報表。

廣告

© . All rights reserved.