(SSIS) データ フロー タスク – SQL を Excel ファイルにエクスポート

(SSIS) データ フロー タスク – SQL を Excel ファイルにエクスポート

次のケースの解決策/チュートリアルを探しています。 MS SQL データベースに 2 つのテーブル (請求書、請求書項目) があります。データを Excel にエクスポートする必要があります。

私の問題は、エクスポート Excel ファイルの構造です。

  1. テーブル「請求書」の最初のレコード
  2. テーブル「請求書項目」からの関連レコード
  3. 空の行

  4. テーブル「請求書」の2番目のレコード

  5. テーブル「請求書項目」からの関連レコード
  6. 空の行

  7. テーブル「請求書」の3番目のレコード

  8. テーブル「請求書項目」からの関連レコード
  9. 空の行

  10. ...

  11. テーブル「請求書」の最後のレコード
  12. テーブル「請求書項目」からの関連レコード
  13. 空の行

誰か良い例を知っていますか?

答え1

この質問の答えは少し難しいです。

  • オブジェクトとして Invoice、文字列として invoiceId という 2 つの変数を作成します (これは、これら 2 つのテーブル間のリンク フィールドであると想定しています)。
  • ここで、スクリプト タスクを使用して、請求書テーブルから invoiceIds を一覧表示し、それを Invoice オブジェクトに格納します。結果セットの結果名は 0 で、VariableName は User::Invoice です。
  • 各ループ コンテナーをプルし、ADO 列挙子を選択してから、ADO オブジェクトとして User::Invoice を選択します。次に、変数マッピングに移動し、InvoiceID フィールドを User::invloiceId 変数に渡します。
  • 次に、データ フロー タスクを追加します。3 つのソースを選択します。1 つは請求書テーブルから、もう 1 つは請求書項目テーブルから、もう 1 つは空白行です (これは空白行なので、必要に応じてデータ変換を使用して変換します)。
  • ここで、パラメータを使用して、各テーブルの where 条件で invoiceID を使用します。
  • 3 つの出力すべてを結合するには、union all を使用します。
  • 次に、保存先として Excel を選択し、すべてのデータをそこに渡します。

これで問題が解決することを願っています。ありがとうございます。

関連情報