在表之间创建关系(教程)
在本课中,您将使用 PowerPivot 查看和创建来自不同数据源的数据之间的关系。关系是在两个数据表之间建立的连接,用于确立两个表中的数据应该如何相关。例如,DimProduct 表和 DimProductSubcategory 表基于每个产品属于某个子类别的事实具有某种关系。有关关系的详细信息,请参阅关系概述。
PowerPivot 中的关系或者通过在 PowerPivot 窗口中手动“联接”表来创建,或者自动创建(如果在将数据导入到 PowerPivot 工作簿中时 PowerPivot for Excel 检测到现有关系)。可以通过联接包含类似或相同数据的列,在两个表之间创建关系。例如,DimProduct 表和 DimProductSubcategory 表通过两个表中都有的 ProductSubcategoryKey 列关联起来。这些列不必具有相同的名称,但是其名称通常相同。
为什么创建关系?
为了执行有意义的分析,数据源之间必须建立某种关系。更具体地说,使用关系,您可以:
依据相关表中的数据列来筛选某一表中的数据。
将来自多个表中的列集成到一个数据透视表或数据透视图中。
使用数据分析表达式 (DAX) 公式轻松地查找相关表中的值。
查看现有关系
在您的 PowerPivot 工作簿中您已具有来自三个不同数据源的数据:
从 Access 数据库导入的销售和产品数据。现有关系会自动与数据一起导入。
从 Access 数据库导入的产品类别数据。
从包含商店信息的 Excel 工作表复制或链接到此类工作表的数据。
查看现有关系
在 PowerPivot 窗口中单击**“设计”选项卡,然后在“关系”组中单击“管理关系”**。
在**“管理关系”**对话框中,应可以看到以下关系,这些关系是在导入第一个 Access 数据库时创建的:
表
相关查找表
DimProduct [ProductSubcategoryKey]
DimProductSubcategory [ProductSubcategoryKey]
FactSales [channelKey]
DimChannel [ChannelKey]
FactSales [DateKey]
DimDate [Datekey]
FactSales [ProductKey]
DimProduct [ProductKey]
单击**“关闭”**。
在来自两个不同源的数据之间创建新关系
至此您查看了自动创建的关系,接下来将创建其他关系。
创建您的第一个关系
单击**“商店”**选项卡。
右键单击 GeographyKey 列标题,并选择**“创建关系”**。
**“表”字段和“列”**字段将自动填充。
在**“相关查找表”**字段中,选择 Geography。
在**“相关查找列”**字段中,选择 GeographyKey。
单击**“创建”**。
在创建了该关系后,在列顶部将显示一个图标。将鼠标指针悬停在该图标上可以显示关系详细信息。
在 Access 和 Excel 数据之间创建更多关系
单击**“商店”**选项卡。
选择 StoreKey 列。
在**“设计”选项卡上,单击“创建关系”**。
**“表”字段和“列”**字段将自动填充。
在**“相关查找表”**字段中,选择 FactSales。
在**“相关查找列”**字段中,选择 StoreKey。
请注意**“相关查找列”字段旁边的图标。此图标表示正在按错误的顺序创建此关系。创建关系时,必须为“相关查找列”**选择具有唯一值的列。
颠倒顺序。将 FactSales 移到**“表”字段,并选择 StoreKey 作为“列”。选择 Stores 作为“相关查找表”,并选择 StoreKey 作为“列”**。
单击**“创建”**。
对于 DimProductSubcategory(作为表)和 ProductCategory(作为查找表)重复上述步骤,在这两个表中使用 ProductCategoryKey 列。
通过单击**“管理关系”**并查看列表,检查是否已成功创建所有关系。