QlikView - 保留



QlikView 中的 keep 命令用于组合来自两个数据集的数据,同时保持两个数据集都可在内存中使用。它与我们在上一章中介绍的连接非常相似,但有两个主要区别。第一个区别是:在 keep 的情况下,两个数据集都存在于 QlikView 的内存中,而在连接中,load 语句仅生成一个数据集,您必须从中选择列。第二个区别是:不存在外部 keep 的概念,而在连接的情况下,我们有外部连接可用。

输入数据

让我们考虑以下两个 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

内部保留

我们使用脚本编辑器加载上述输入数据,该编辑器通过按下 **Ctrl+E** 调用。选择 **表格文件** 选项并浏览输入文件。然后,我们编辑脚本中的命令以在表之间创建内部保留。

keep_script

内部保留仅获取两个表中都存在的那些行。在本例中,获取 **产品列表和产品销售** 表中都可用的行。我们使用菜单 **布局 → 新工作表对象 → 表格框** 创建表格框。

首先,我们仅选择 **productSales** 表,这使我们能够显示字段 - ProductID、ProductCategory 和 SaleAmount。

keep_product_sales

接下来,我们选择 **ProductList** 数据集,这使我们能够显示字段 ProductID 和 ProductCategory。

keep_product_list

最后,我们选择 **所有表格** 选项并获取所有表格中所有可用的字段。

keep_both_tables

以下报告显示了上述步骤中的所有表格框。

keep_chart_innerkeep

左保留

左保留类似于左连接,它保留左侧表中的所有行,以及 QlikView 内存中可用的两个数据集。

左保留脚本

以下脚本用于使用左保留命令创建结果数据集。

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);

左保留数据

当我们将脚本更改为上述内容并使用 **Ctrl+R** 刷新报表中的数据时,我们在工作表对象中获得以下数据。

keep_chart_leftkeep

右保留

右保留类似于右连接,它保留右侧表中的所有行,以及 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);

右保留数据

当我们将脚本更改为上述内容并使用 **Ctrl+R** 刷新报表中的数据时,我们在工作表对象中获得以下数据。

keep_chart_rightkeep
广告