QlikView中的keep命令用于组合来自两个数据集的数据,保持数据集在内存中可用.除了两个主要的区别外,它与前一章中介绍的连接非常相似.第一个区别是 : 如果保持;两个数据集在QlikView的内存中都可用,而在加入时,加载语句只生成一个数据集,您必须从中选择列.第二个区别是 : 没有外部保持的概念,因为我们在连接时可以使用外连接.
输入数据
让我们考虑以下两个CSV数据文件,用作进一步插图的输入.
Product List:ProductID,ProductCategory1,Outdoor Recreation2,Clothing3,Costumes & Accessories4,Athletics5,Personal Care6,Hobbies & Creative ArtsProduct Sales:ProductID,ProductCategory,SaleAmount4,Athletics,12125,Personal Care,52116,Hobbies & Creative Arts,10217,Display Board,21778,Game,11459,soap,101210,Beverages & Tobacco,2514
内部保留
我们使用脚本编辑器加载上述输入数据,脚本编辑器通过按下来调用控制+ E 的.选择表文件选项并浏览输入文件.然后我们编辑脚本中的命令以在表之间创建内部保持.
keep_script"/>
内部保持仅提取两个表中存在的行.在这种情况下,将获取产品列表和产品销售表中可用的行.我们使用菜单 Layout&rarr创建一个表格框; New Sheet Objects → 表格框.
首先,我们只选择 productSales 表,它为我们提供了要显示的字段 - ProductID,ProductCategory和SaleAmount./p> keep_product_sales"/>
接下来,我们选择 ProductList 数据集,它为我们提供了ProductID和ProductCategory字段.
keep_product_list"/>
最后,我们选择所有表选项,并从所有表中获取所有可用字段.
keep_both_tables"/>
以下报告显示了上述步骤中的所有表格框.
keep_chart_innerkeep"/>
Left Keep
左保持类似于左连接,它保留表中的所有行左边的阿隆g,两个数据集都在QlikView的内存中可用.
左保留脚本
以下脚本用于创建左边的结果数据集保持命令.
productsales:LOAD ProductID, ProductCategory, SaleAmountFROM[C:\Qlikview\data\product_lists.csv](txt, codepage is 1252, embedded labels, delimiter is ',', msq);left keep(productsales)productlists:LOAD ProductID, ProductCategoryFROM[C:\Qlikview\data\Productsales.csv](txt, codepage is 1252, embedded labels, delimiter is ',', msq);
左保留数据
当我们更改上述脚本并使用刷新报告中的数据时Control + R ,我们在工作表对象中获得以下数据.
keep_chart_leftkeep"/>
Right Keep
Right keep类似于left join,它保留右边表中的所有行以及QlikView内存中可用的数据集.
正确保留脚本
以下脚本用于使用left keep命令创建结果数据集.
productsales:LOAD ProductID, ProductCategory, SaleAmountFROM[C:\Qlikview\data\product_lists.csv](txt, codepage is 1252, embedded labels, delimiter is ',', msq);right keep(productsales)productlists:LOAD ProductID, ProductCategoryFROM[C:\Qlikview\data\Productsales.csv](txt, codepage is 1252, embedded labels, delimiter is ',', msq);
正确保留数据
当我们更改上述脚本并使用刷新报告中的数据时Control + R ,我们在工作表对象中获得以下数据.
keep_chart_rightkeep"/>