QlikView – 保持

QlikView – 保持


QlikView 中的 keep 命令用于组合来自两个数据集的数据,使这两个数据集都保留在内存中。除了两个主要区别之外,它与我们在前一章中介绍的连接非常相似。第一个区别是 – 在保留的情况下;这两个数据集在 QlikView 的内存中都可用,而在 join 中,加载语句仅生成一个数据集,您必须从中选择列。第二个区别是 – 没有外部保持的概念,因为在连接的情况下我们有外部连接可用。

输入数据

让我们考虑以下两个 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调用选择选项表文件并浏览输入文件。然后我们编辑脚本中的命令以在表之间创建内部保留。

保持脚本

内部保持只提取那些存在于两个表中的行。在这种情况下,将获取Product List 和 Product Sales表中可用的行我们使用菜单Layout → New Sheet Objects → Table Box创建一个 Table Boxes

首先,我们只选择productSales表,它为我们提供了要显示的字段 – ProductID、ProductCategory 和 SaleAmount。

keep_product_sales

接下来,我们选择ProductList数据集,它为我们提供了 ProductID 和 ProductCategory 字段。

keep_product_list

最后,我们选择All Tables选项并从所有表中获取所有可用字段。

keep_both_tables

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

keep_chart_innerkeep

左保持

Left keep 与 left join 类似,它保留左侧表中的所有行以及 QlikView 内存中可用的两个数据集。

左保留脚本

以下脚本用于使用 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刷新报表中的数据时,我们会在工作表对象中获得以下数据。

keep_chart_leftkeep

右保持

Right keep 类似于 left join,它将表中的所有行保留在右侧,同时数据集在 QlikView 的内存中可用。

右键保留脚本

以下脚本用于使用 left keep 命令创建结果数据集。

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刷新报表中的数据时,我们会在工作表对象中获得以下数据。

keep_chart_rightkeep

觉得文章有用?

点个广告表达一下你的爱意吧 !😁