Qlikview 简明教程

QlikView - Joins

QlikView 中的联接用于将两个数据集中的数据合并为一个数据集。QlikView 中的联接与 SQL 中的联接具有相同的含义。只有匹配联接条件的列和行值才会显示在输出中。如果您是联接的完全新手,您可能希望首先了解它们 here.

Input Data

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

Inner Join

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

load script

内部联接仅获取存在于两个表中的那些行。在这种情况下,获取 both Product List and Product Sales 表中可用的行。我们使用菜单 Layout → New Sheet Objects → Table Box 创建 Table Box ,在该菜单中,我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。

inner join

Left Join

左联接涉及提取来自左表中的所有行,以及来自右表中的匹配行。

Load Script

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

我们使用菜单 Layout → New Sheet Objects → Table Box 创建一个 Table Box ,其中选择所有三个字段(ProductID、ProductCategory 和 SaleAmount)进行显示。

left join

Right Join

右联接涉及提取来自右表中的所有行,以及来自左表中的匹配行。

Load Script

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

我们使用菜单 Layout → New Sheet Objects → Table Box 创建一个 Table Box ,其中选择所有三个字段(ProductID、ProductCategory 和 SaleAmount)进行显示。

right join

Outer Join

外联接涉及提取来自右表和左表中的所有行。

Load Script

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

我们使用菜单 Layout → New Sheet Objects → Table Box 创建一个 Table Box ,其中选择所有三个字段(ProductID、ProductCategory 和 SaleAmount)进行显示。

outer join