QlikView - 保留
QlikView 中的保留命令用于合并两个数据集中的数据,使两个数据集都保留在内存中。它与我们在上一章中介绍的连接非常相似,但有两个主要区别。第一个区别是,在保留的情况下,− 两个数据集都保留在 QlikView 的内存中,而在连接中,加载语句仅生成一个数据集,您必须从中选择列。第二个区别是,− 没有外部保留的概念,而在连接的情况下,我们有外部连接。
输入数据
让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts Product Sales: ProductID,ProductCategory,SaleAmount 4,Athletics,1212 5,Personal Care,5211 6,Hobbies & Creative Arts,1021 7,Display Board,2177 8,Game,1145 9,soap,1012 10,Beverages & Tobacco,2514
内部保留
我们使用脚本编辑器加载上述输入数据,该编辑器通过按 Control+E 调用。选择选项 表格文件 并浏览输入文件。然后我们编辑脚本中的命令以在表格之间创建内部保留。
内部保留仅获取两个表格中都存在的行。在本例中,将获取 产品列表和产品销售 表格中可用的行。我们使用菜单 布局 → 新建工作表对象 → 创建表格框表格框。
首先,我们仅选择 productSales 表,该表为我们提供了要显示的字段 - ProductID、ProductCategory 和 SaleAmount。
接下来,我们选择 ProductList 数据集,该数据集为我们提供了字段 ProductID 和 ProductCategory。
最后,我们选择 所有表 选项并从所有表中获取所有可用字段。
以下报告显示了上述步骤中的所有表格框。
Left Keep
Left Keep 与 Left Join 类似,它会保留左侧表格中的所有行,同时保留 QlikView 内存中的数据集。
Left Keep 脚本
以下脚本用于使用 Left Keep 命令创建结果数据集。
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); left keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
左保留数据
当我们按上述方式更改脚本并使用 Control+R 刷新报告中的数据时,我们会在工作表对象中获得以下数据。
右保留
右保留类似于左连接,它会保留右侧表格中的所有行,同时保留 QlikView 内存中的数据集。
右保留脚本
以下脚本用于使用左保留命令创建结果数据集。
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); right keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
右侧保留数据
当我们按上述方式更改脚本并使用 Control+R 刷新报告中的数据时,我们会在工作表对象中获得以下数据。