2017-07-20 14 views
0

これで私の髪を引き出します...複数の既存のクエリを追加する

複数の接続のみのクエリ(Sharepoint Excelとcsvファイルのクエリ)を統合しようとしています。各ファイルには一意の変換があるため、それぞれに固有のクエリが必要です。これは、クエリとテーブルへのダンプのみを接続してテストするために美しく機能します。

私はそれがこれまでのところ、これらのキーラインとあったやった方法:それは美しくマージだ

let 
Source = #sections, 
Section1 = Source[Section1], 
#"QueryList" = Record.ToTable(Section1), 
#"Test Errors" = //Omitted tests for error queries 
#"Remove Errors" = //Omitted removes error queries 
#"FilterOut" = //Omitted filters out queries I don't want 
#"Expanded Value" = Table.ExpandTableColumn(#"FilterOut", "Value", {...fields...}, {...fieldsagain...}), ...yada yada rest of code... 

...しかし、それは唯一のプレビュー用のキャッシュにロードされたデータを返す、およびNOT完全なデータリフレッシュいます(Refresh AllボタンとVBA経由でも)。

私は、クエリを設定する以外に多くの追加のアドバイスを、私はできる限りの解決策を探し同僚オフのアイデアをバウンスしていませんでした

  • 無効に背景がオープン
  • 更新をリフレッシュ

    これは本当に問題を解決することを望んでいた...それはしなかった。

    だから追加クエリで再見て、リストから「各」句を含むクエリを追加しようとしている...しかし、エラーを取得:

    let 
    
    //Set the Header Row 
    #"BaseTable" = //Create the headers ... side-step query firewall issues 
    
    //Get List of Query Names 
    Source = #sections, 
    Section1 = Source[Section1], 
    #"QueryList" = Record.ToTable(Section1), 
    #"Test Errors" = //Omitted tests for error queries 
    #"Remove Errors" = //Omitted removes error queries 
    #"FilterOut" = //Omitted filters out queries I don't want 
    //Custom field to get the query names just right 
    #"CustomName" //Custom field [QUERY_N] to get the query names just right 
    #"Removed Other Columns1" = Table.SelectColumns(#"CustomName",{"QUERY_N"}), 
    //Final table with a single column listing all the query names 
    QueryListing = #"Removed Other Columns1", 
    
    //Appending 
    #"Appended Query" = Table.Combine({#"BaseTable", each QueryListing}) in#"Appended Query" 
    

    今、私はエラーを取得します

    Expression.Error: We cannot convert a value of type Function to type Table. Details: Value=Function Type=Type 
    

    は、上場ビットに設定浮遊文字ではありませんを確認するために別の名前付けとクエリ名をアップパッチを適用しようとしました:

    #"CustomName" //Custom field [QUERY_N] to get the query names just right, 
    #"Removed Other Columns1" = Table.SelectColumns(#"CustomName",{"QUERY_N"}), 
    QueryListing = Table.ToList(#"Removed Other Columns1"), 
    
    //Appending 
    #"Appended Query" = Table.Combine({#"BaseTable", each "#" & """" & QueryListing & """"}) 
    

    しかし、文字列エラーではなく、リフレッシュ後に同じエラーメッセージが表示されます。

    どのように私はこれを動作させることができますか?

  • 答えて

    1

    eachは、each ...のように、(_) => ...という短い書き方で機能します。代わりに&演算子を使用して2つのリストを組み合わせることができます。

    ドリルダウンのクエリ値のテーブルが#sectionsになっている場合は、名前を取得する代わりにそれらの値を直接使用する必要があります。 QueryValuesがあなたのテーブル値の1列のテーブルとステップの名前があり、その列名がColumnであれば、これは動作するはずです:

    Table.Combine({BaseTable} & QueryListing[Column])

    を最初のアプローチのために、あなたはそれをどのようにを知っていますかフィールドがありませんか?それは列が欠落しているのですか、それともすべての列がありますが、すべての行がありませんか?

    +0

    幸いにも、すべての列はありますが、レコードがありません。私は深く掘り下げてどのレコードをチェックし、それがキャッシュ内の情報を引き出すだけであることを確認しました。つまりクエリのみのクエリの場合、結合を行うときにクエリをリフレッシュしません。 – Maus

    +0

    提案をお寄せいただきありがとうございます。ここで概説したアプローチを試してみましょう。 – Maus

    +0

    ここでメソッドを使用して結合するクエリを取得します。問題は依然として続き、プレビュー中にキャッシュ内の最初のレコードのみを送信しているため、参照されている完全な接続のみがリフレッシュされていません。キャッシュをクリアして完全リフレッシュを実行した後、最終結果ではレコードを取得していませんが、まだエディタには残っていません。 – Maus