QlikView - 连接
QlikView 中的连接用于将两个数据集的数据合并为一个。QlikView 中的连接与 SQL 中的连接含义相同。只有符合连接条件的列和行值才会显示在输出中。如果您对连接完全陌生,您可能希望 首先在此处了解它们。
输入数据
让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts ProductSales: 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 即可调用该编辑器。选择选项 表格文件 并浏览输入文件。然后我们编辑脚本中的命令以在表格之间创建内连接。
内连接仅获取两个表中都存在的行。在本例中,将获取 产品列表 和 产品销售 表中可用的行。我们使用菜单 布局 → 新建工作表对象 → 创建 表格框表格框,我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。
左连接
左连接涉及从左侧表格中提取所有行并从右侧表格中提取匹配行。
加载脚本
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LEFT JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我们使用菜单布局 → 新建工作表对象 → 表格框创建一个表格框,其中我们选择要显示的所有三个字段(减去 ProductID、ProductCategory 和 SaleAmount)。
右连接
右连接涉及从右侧表格中提取所有行并从左侧表格中提取匹配行。
加载脚本
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); RIGHT JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我们使用菜单布局 → 新建工作表对象 → 表格框创建一个表格框,其中我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。
外连接
外连接涉及从右侧表格以及左侧表格中提取所有行。
加载脚本
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); OUTER JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我们使用菜单布局 → 新建工作表对象 → 表格框创建一个表格框,其中我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。