如何通过Power BI DirectQuery从多对一相关表中获取映射值?

时间:2019-11-06 15:14:42

标签: powerbi

我有2个共享外键的表。 Power BI将它们视为多对多(表A)与一对(表B)的关系。我要做的就是从表B中获取一个值,以显示为表A的列。

当我通过PowerQuery查看表时(使用Power Bi Desktop中的“编辑查询”),我可以看到表B,但每一行仅显示“ Value”作为其值。如果单击“值”,则会在表下方获取相关对象的详细信息,因此我知道该关系有效。

我的挣扎在于,我没有通过Google搜索结果看到的任何方法都能为我带来价值。

我尝试使用LOOKUPVALUE和RELATED。

RELATED(TableB[ColumnNameImTryingToRetrieve])
RELATED(TableB[IdColumn]

对于RELATED函数,我为ColumnName参数尝试的每个变化都会导致错误消息

  

“'TableB [NameIveGiven]'列不存在或不存在   与当前上下文中可用的任何表都有关系。”

或错误消息

  

“参数不是正确的类型”。

在出现的Intellisense选项中,甚至没有提供LOOKUPVALUE作为选项,因此我无法尝试。

我已经看到很多关于在LOOKUPVALUE在DirectQuery模式下不可用的参考,并且DirectQuery选项中曾经有一个选项称为“在DirectQuery模式下允许不受限制的措施”,但现在不再可用。据认为这将允许LOOKUPVALUE工作。

此外,当我尝试在PowerQuery中进行大多数更改时,尝试添加新列时,我收到错误消息“此步骤导致DirectQuery模式不支持的查询”。

是否有任何简单的方法来获取在DirectQuery模式下获取的值,还是应该切换到导入模式?

1 个答案:

答案 0 :(得分:0)

好的,我得到了我想要的。我在Power Query Editor中使用“合并查询”在表上进行了左联接。然后,我将联接所创建的表列拆分为几列,只保留我后面的列。

然后在第三张桌子上,我能够做到:

RELATED(TableA[TableB.1.ColumnINeed])