QlikView中的keep命令用于组合来自两个数据集的数据,保持数据集在内存中可用.除了两个主要的区别外,它与前一章中介绍的连接非常相似.第一个区别是 : 如果保持;两个数据集在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
我们使用脚本编辑器加载上述输入数据,脚本编辑器通过按下来调用控制+ E 的.选择表文件选项并浏览输入文件.然后我们编辑脚本中的命令以在表之间创建内部保持.
内部保持仅提取两个表中存在的行.在这种情况下,将获取产品列表和产品销售表中可用的行.我们使用菜单 Layout&rarr创建一个表格框; New Sheet Objects → 表格框.
首先,我们只选择 productSales 表,它为我们提供了要显示的字段 - ProductID,ProductCategory和SaleAmount./p>
接下来,我们选择 ProductList 数据集,它为我们提供了ProductID和ProductCategory字段.
最后,我们选择所有表选项,并从所有表中获取所有可用字段.
以下报告显示了上述步骤中的所有表格框.
左保持类似于左连接,它保留表中的所有行左边的阿隆g,两个数据集都在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);
当我们更改上述脚本并使用刷新报告中的数据时Control + R ,我们在工作表对象中获得以下数据.
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 ,我们在工作表对象中获得以下数据.