Qlikview 简明教程
QlikView - Circular Reference
当我们可以使用两种或更多种不同的路径从一个表遍历到另一个表时,会出现 Circular Reference 。这意味着您可以使用列直接将 Table1 与 Table2 联接,也可以先将 Table1 与 Table3 联接,然后将 table3 与 Table2 联接。这会导致由数据模型(加载所有这三个表)形成的输出中的结果不正确。一旦 QlikView 识别出循环引用,便会阻止此类数据加载到其内存中。
Input Data
让我们考虑以下三个 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
Data Model
为了找到上述警告的确切原因,我们可以使用表格查看器菜单命令 Control+T 查看数据模型。弹出以下屏幕,其中清楚地显示了循环引用。此处,RegionCountry 和 SalesRegion 之间的联接可以使用字段 Region 直接实现。它也可以通过首先使用字段 Country 转到表 ProductCountry,然后将 ProdcutID 映射到 Salesregion 来实现。