web-dev-qa-db-ja.com

Power Queryを使用してパラメーター化されたSQLクエリの結果を使用してセル値を設定するにはどうすればよいですか?

列A、B、およびCのワークシートがあります。次に、列AおよびBの値を使用して、SQL Serverでクエリを実行し、列Cに配置する必要のある値を見つける必要があります。

私はこのようなクエリを作成しました:

SELECT * FROMテーブル名

次に、Power Query Editorで作成した2つのパラメーターを考慮したフィルタリング手順を追加しました。

では、この既存のワークシートをクエリに接続し、セルの値をパラメーターとして渡して結果(単一行)を取得するにはどうすればよいですか?

更新

さらに情報を追加しています...

私のワークシートは次のようなものです:

Column A | Column B | Column C
   1     |  223     |    ?
   2     |  545     |    ?
   8     |  542     |    ? 

次に、データベーステーブルにこれらの3つの列がすべて(重要ではない他のいくつかの列とともに)あります。ワークシートの列AおよびBをデータベーステーブルの対応する列AおよびBと比較して、データベース(テーブル全体を新しいワークシートにインポートせずに)。

私があなたの質問を最もよく理解していることに基づいて、あなたはパラメータ化されたクエリを正常に作成し、おそらくあなたが入れたようです?フィールド値の場合、値を渡すことで結果を取得できます。

次に、セル値をパラメータ値として参照する必要があります。

これらの手順を試してください。

  1. テーブルを選択し、[デザイン]タブに移動し、[プロパティ]に移動します
  2. 接続名の横にあるボタンをクリックします。 enter image description here
  3. [定義]タブに移動します。パラメータ化されたクエリを正しく作成した場合、パラメータボタンが有効になります。
  4. 指定したパラメーターについて、ラジオボタン「次のセルから値を取得する」を選択し、セルの値が変更されたときに自動的に更新を有効にします。 enter image description here
  5. すべてのダイアログボックスで[OK]をクリックして終了します。

Excelシートのセルの値を更新するたびにクエリが実行されるのが理想的です。

MS Accessデータベースに基づく以下の例を参照してください。手順がSQLServerでも非常に似ていることを願っています。さらに探索して実験してください。お役に立てれば。

enter image description here

enter image description here

1
patkim

MY SQLに接続しているかどうかを指定していないので、ExcelファイルをMY Sqlにエクスポートする最も簡単なプロセスを紹介します。

これらの手順に従ってExcelワークシートデータをMySQLテーブルにエクスポートします。

  1. [データ]タブを選択し、[MySQL for Excel]をクリックして、MySQL forExcelの作業ウィンドウを開きます。

  2. [MySQL接続を開く]で、既存のローカル接続またはリモート接続をダブルクリックして、使用可能なデータベーススキーマを表示します。

  3. [スキーマ]を選択し、[次へ]をクリックして、すべてのデータベースオブジェクトを表示します。

  4. 次に、エクスポートするワークシートのセルを選択し、[Excelデータを新しいテーブルにエクスポート]をクリックします。

  5. ここで、最初の行を列名として使用するかどうかを指定します。

  6. 次に、「一意のテーブル名」と入力し、新しいテーブルに使用する照合順序を選択します。

  7. 主キー列を選択します。

  8. 列に適切なオプションを適用します。

  9. 最後に、[データのエクスポート]をクリックして、データを含む新しいテーブルを作成します。

他の方法はODBC DSNを作成することです。

注、、、Select * from TableName、すべての列のテーブルからすべてのレコードをプルします。

パラメータに苦労しているので、クエリを成功させるには、最初にパラメータを宣言する必要があります。

これが一例です。

DECLARE @Parameter VARCHAR(20)
SET @Parameter = 'Amit'

SELECT *
FROM Table
WHERE Name = @Parameter

これがお役に立てば幸いです。

0
Rajesh S

最初の回答とOP(あなたが投稿した質問)のコメントを読んで気付いた後、私が提案できる最善の回答を以下に示します。

方法1:SQLクエリデータをExcelにエクスポートします。

データのクエリ中に、結果ウィンドウで、左上のセルをクリックしてレコードを強調表示し、左上のセルを右クリックして、[名前を付けて結果を保存]をクリックします。

エクスポートするのに最適なファイルタイプを選択できます。CSVファイルです。

つまり、SQLクエリデータをExcelにエクスポートします。

方法2:Excelにエクスポートするクエリステートメントを作成します。

INSERT INTO OPENROWSET 
   ('Microsoft.Jet.OLEDB.4.0', 
   'Excel 9.0;Database=D:\Sales.xlsx;','SELECT * FROM Sales where Code = 1000')

その他は以下のとおりです。クエリはデータをCSVファイルとしてExcelに直接配置します。

SELECT * FROM Sales where Code = 1000 INTO OUTFILE 'D:/Sales.CSV' FIELDS TERMINATED BY ','  
 ENCLOSED BY '"' LINES TERMINATED BY '\n';

NB:データベース構造に応じてファイル、フィールド名、および基準を変更します。

これがあなたを助けると信じています。

0
Rajesh S