쿼리

2017-03-01 5 views
1

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" 

출력 : 를 Output

그렇듯이 실제 데이터를 표시하려면 DirectQuery를 통해 데이터를 가져 오는 중입니다. 그러나 쿼리 편집기에서 "이 단계로 인해 DirectQuery 모드에서 지원되지 않는 쿼리가 발생합니다"라는 경고 메시지가 표시됩니다. 인터넷 검색을 통해 질문과 답변이 사례별로 고유하다는 것을 알게되었습니다.

"가져 오기"모드로 전환하면 문제가 해결되지만 해당 경로로 이동하지 않는 것이 좋습니다. 나는 오히려 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을 사용하는 것과 동일합니다.