2017-03-01 9 views
1

AはDisplay rows where foreign key is present in PowerBIクエリ(PowerBI/PowerQuery)

からフォローアップ私は今、テーブルとして参加し、ディスプレイを介してデータを取得する次のクエリがあります。

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" 

出力: をOutput

そのまま、DirectQuery経由でデータを取得して、ライブデータを表示できるようにします。ただし、クエリ・エディタは、「このステップでは、DirectQueryモードではサポートされていない問合せが発生します」という警告メッセージが表示されます。 Googleで検索したところ、質問と回答はケースバイケースで一意であることがわかりました。

「インポート」モードに切り替えることで問題は解決しますが、そのパスを使用しないことをお勧めします。私はむしろDirectQueryでうまくいっている間に私がやりたいことを可能にするためにクエリを変更したいと思います。

ありがとうございます。

+1

私たちに[mcve]を提供すると、助けがはるかに簡単で楽しくなります。問題を最小限に抑えるために、質問を編集してDDLとDMLを含めることができますか? – Jeroen

+0

どちらのタイプも* Information_Group *と* Capability *のどちらのタイプですか? – Eugene

+0

また、なぜ結果の "NewColumn"を削除しますか? – Eugene

答えて

2

問題の原因は、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を使用するのと同じになります。