Display rows where foreign key is present in PowerBI的后续行动
现在,我有了以下查询,该查询通过联接检索数据并显示为表:
let
Source = Sql.Database("server\database", "Mclaren"),
dbo_Capability = Table.NestedJoin(
Source{[Schema="dbo",Item="Capability"]}[Data],{"ID"},
Source{[Schema="dbo",Item="Information_Group"]}[Data],{"Capability"},
"NewColumn",
JoinKind.RightOuter
),
#"Removed Columns" = Table.RemoveColumns(dbo_Capability,{"NewColumn"})
in
#"Removed Columns"输出:

实际上,数据是通过DirectQuery获取的,以支持实时数据的显示。但是,查询编辑器引发了一条警告消息,该消息说:“此步骤导致在DirectQuery模式下不支持的查询”。在谷歌上搜索后,我发现问题和答案在逐个案例的基础上是独一无二的。
这个问题可以通过切换到“导入”模式来解决,但我不希望沿着这条路走下去;我宁愿更改查询,以允许在处理DirectQuery时仍然执行我想要做的事情。
谢谢。
发布于 2017-03-01 14:47:11
问题的原因似乎是RightJoin。PowerBI不支持任何类型的联接的直接查询,只有左联接除外。
尝试以下几个方面:
let
Source = Sql.Database("server\database", "Mclaren"),
dbo_Capability = Table.NestedJoin(
Source{[Schema="dbo",Item="Information_Group"]}[Data],{"Capability"},
Source{[Schema="dbo",Item="Capability"]}[Data],{"ID"},
"NewColumn",
JoinKind.LeftOuter
),
#"Removed Columns" = Table.RemoveColumns(dbo_Capability,{"NewColumn"})
in
#"Removed Columns"同样,我认为没有理由删除"NewColumn“。
如果两个表都没有相同的列,您可能还会发现这种方法很有用:
let
Source = Sql.Database("server\database", "Mclaren"),
dbo_Capability = Table.Join(
Source{[Schema="dbo",Item="Information_Group"]}[Data],{"Capability"},
Source{[Schema="dbo",Item="Capability"]}[Data],{"ID"},
JoinKind.LeftOuter
)
in
dbo_Capability结果表将与在SQL中使用LEFT JOIN相同。
https://stackoverflow.com/questions/42521644
复制相似问题