![Qlikview Tutorial](/qlikview/images/qlikview-mini-logo.jpg)
- QlikView 数据加载
- QlikView - Excel 文件
- QlikView - 分隔符文件
- QlikView - XML 文件
- QlikView - Web 文件
- QlikView - 数据库
- QlikView - 内联数据
- QlikView - Resident 加载
- QlikView - 前序加载
- QlikView - 增量加载
- QlikView - 数据 - 文件(QVD)
- QlikView 报表界面
- QlikView - 工作表和对象
- QlikView - 脚本
- Qlikview - 函数
- QlikView - IntervalMatch
- QlikView - 聚合函数
- QlikView - Match 函数
- QlikView - Rank 函数
- QlikView - Peek 函数
- QlikView - RangeSum 函数
- QlikView - 文档
- QlikView - 列表框
- QlikView - 多选框
- QlikView - 文本对象
- QlikView - 条形图
- QlikView - 饼图
- QlikView - 仪表盘
- QlikView 数据转换
- QlikView - 转换向导
- QlikView - Fill 函数
- QlikView - 列操作
- QlikView - 旋转表格
- QlikView 数据模型
- QlikView - 维度和度量
- QlikView - 星型模式
- QlikView - 合成键
- QlikView - 生成数据
- QlikView 数据分析
- QlikView - 交叉表
- QlikView - 直通表
- QlikView - 数据透视表
- QlikView - 集合分析
- QlikView - 连接
- QlikView - 保留
- QlikView - 连接
- QlikView - 主日历
- QlikView - 映射表
- QlikView - 循环引用
- Qlikview 有用资源
- Qlikview - 问题/解答
- Qlikview - 快速指南
- Qlikview - 有用资源
- Qlikview - 讨论
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 调用。选择选项表格文件并浏览输入文件。
数据加载
创建上述脚本后,我们使用命令Ctrl+R 将数据加载到 QlikView 的内存中。这时,我们会收到错误提示,提示加载的表中存在循环。
数据模型
为了找到上述警告的确切原因,我们可以使用表格查看器的菜单命令 - Ctrl+T 查看数据模型。出现以下屏幕,清楚地显示了循环引用。此处,RegionCountry 和 SalesRegion 之间的连接可以使用字段Region 直接实现。它也可以通过首先转到表 ProductCountry,使用字段Country,然后将 ProdcutID 与 Salesregion 映射来实现。
解决循环引用
可以通过重命名数据集中的一些列来解决上述循环引用,以便 QlikView 不使用列名在表之间自动形成关联。为此,我们将 RegionCountry 中的 country 列重命名为 SalesCountry。在数据集 ProdcuCountry 中,我们将 Country 列重命名为 ProductCountry。
修正后的数据模型
重命名上述列后的修正数据模型可以使用命令Ctrl+T 查看。现在我们可以看到表之间的关系不再形成循环。
按Ctrl+R 重新加载数据不再出现警告,我们可以使用这些数据创建报表。