我尝试在 PowerBI 中与 3 个表建立关系。这是一个粗略的例子
项目详情(事实)
前任详细信息(暗淡)
继任者详细信息(暗淡)
我与项目 ID 上的“项目详细信息”和“前身详细信息”具有一对多关系。我还与项目 ID 上的项目详细信息和后续详细信息建立了一对多关系。
在 PowerBI 页面中,我想查看前驱依赖项和后继依赖项的项目经理。我将如何在 PowerBI 中管理这种关系?我目前无法将前驱表和后继表拉入 1 个视觉对象中。
尝试在 PowerBI 中建立关系。
使用电源查询:
使用“合并查询”作为“新建”创建一个新表,其中选择“前身详细信息”作为第一个表,选择“项目详细信息”作为第二个表,然后将它们加入“项目 ID”:
然后选择项目经理栏:
您应该对继任者详细信息执行相同的操作。
然后创建一个空白查询,在其中组合两个表并添加一列来指定依赖关系类型:
= let
Predecessors = Table.SelectColumns(#"Merged Query1", {"Project ID", "Project Manager"}),
PredecessorsWithDependency = Table.AddColumn(Predecessors, "Dependency Type", each "Predecessor"),
Successors = Table.SelectColumns(#"Merged Query2", {"Project ID", "Project Manager"}),
SuccessorsWithDependency = Table.AddColumn(Successors, "Dependency Type", each "Successor"),
CombinedTable = Table.Combine({PredecessorsWithDependency, SuccessorsWithDependency})
in
CombinedTable
使用DAX:
您可以将两个 CC 添加到每个维度:
Predecessor_ProjectManager =
LOOKUPVALUE('Project Details'[Project Manager], 'Project Details'[Project ID], 'Predecessor Details'[Project ID])
Successor_ProjectManager =
LOOKUPVALUE('Project Details'[Project Manager], 'Project Details'[Project ID], 'Successor Details'[Project ID])
然后创建一个计算表来合并结果:
MyTable =
UNION(
SELECTCOLUMNS(
'Predecessor Details',
"Project ID", 'Predecessor Details'[Project ID],
"Dependency Type", "Predecessor",
"Project Manager", 'Predecessor Details'[Predecessor_ProjectManager]
),
SELECTCOLUMNS(
'Successor Details',
"Project ID", 'Successor Details'[Project ID],
"Dependency Type", "Successor",
"Project Manager", 'Successor Details'[Successor_ProjectManager]
)
)
从建模角度来看,您可能只需要一个通过桥接表链接到事实表的维度,其中包含项目 ID、经理和依赖列。 事实表和维度将与您的桥接表具有一对多关系。