2016-05-05 126 views
0

Power Queryでは、あるクエリ(たとえば、 "Sales"テーブルに存在する顧客のリスト)の別個の値のリストを使用して別のクエリのSQL文に挿入する例えば「顧客」の次元表)。つまり、私が機能を持っている個別値のリストを引っ張るgetDistinct()するにはデータの組み合わせを再構築する方法Power Query

  1. のみ、その列に存在する個別の値を維持し、
  2. クエリ選択肢から1列、
  3. を取得します。
  4. これらの異なる値をカンマで区切って返します。これらの値はSQL文内に挿入できます。

この機能は、スタンドアロンクエリで正常に機能します。しかし、私は私の「顧客」クエリにそれを使用しようとすると、エラーがスローされます(コードと以下のエラーを参照してください)。

let 
    Source = Oracle.Database("myServer", [Query="select * from db_customer where customer_id in (" & getDistinct(Sales,"CustomerID") & ")"]) 
in 
    Source 

とエラー:

Formula.Firewall: Query 'Customer' (step 'Source') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination.

私が作成しようとしました関数を実行し、それを私の "Customer"クエリで参照する別のクエリですが、これはうまくいかないようです。私は「プライバシーレベルを無視する」ことができることを知っています(ところで、私はチェックして動作します)。しかし、その意味はわからないので、私は漏れたデータを恐れています。

答えて

3

この要件のために関数または手書きコードが必要な理由はわかりません。

私はSalesテーブルを取得し、次にCustomerIDでグループ化するクエリを作成します。私はそれに設定します:接続を読み込む/ Only Create Connection。

その後、お客様は、クエリだけで次のようになります。

  1. ソースは
  2. は、KIND =インナーに参加し
+0

とこれは私のために動作しません、得意先に販売クエリにマージしたOracle Customersテーブルです。手順1ですべての顧客データを取得すると、パワーユーザーはPower Queryを開いてすべての顧客データを表示できます。 – Victor

+1

もし彼らがアクセスしたいのであれば、最初の答えでそれを得るためにクエリを変更することができます。ソース問合せを接続とし​​て作成する場合、ユーザーはワークシート上のソース・データのいずれも表示できません。 –

+0

@ AlejandroLopez-Lago-MSFT特定のシナリオを正しく記述していない可能性があります。このレポートを特定のオーディエンスと共有したいとします(レポートにはデータベースにアクセスできないためレポートを更新できません)。そのレポートには表示されていない顧客データにはアクセスできません売上表。私が何か不足していない限り、たとえ "接続のみ"のクエリを作成しても、PowerQueryに行き、データのプレビューを見ることができます。モデル。 – Victor

関連する問題