1

私は5つのテーブルを持つデータベースを使用しています。これらのテーブルにはすべて、クライアントとその従業員に関するさまざまな情報が含まれています。特定のクライアントに関連するデータのテーブルをドリルダウンすると、データセット内の従業員の数に応じて多くの行が返されます。

必要なレポートを手動で実行する場合は、特定のクライアント番号が指定されているすべての結果について、一度に1つずつ各テーブルにクエリを実行します。次に、各テーブルを.csvにエクスポートし、それらのエクスポートを5つのタブ(SQLデータベースの5つのテーブルに対応)を持つ同じExcelブックにコピーします。最後に、クライアントごとに個別のワークブックを作成します。

複雑な要因は、すべてのクライアントIDが5つのテーブルのそれぞれに表示されるわけではないことです。できれば、空のデータセットをエクスポートせず、テーブルの3つだけにデータがあるクライアントは、最終的なブックに3つのタブしかありません。

SQLサーバーにクライアントIDのリストを提供する方法はありますか?クライアントIDは、5つのテーブルをクエリし、既存のデータをエクスポートし、(おそらく/うまくいけば)別々のタブのワークブックに結合する必要があります。

4

1 に答える 1

3

あなたの質問はかなり漠然としていますが、物事を進めるために調査する必要がある重要な情報は次のとおりです。

  • 5 つの異なるデータセットを作成し、それぞれが 1 つのテーブルに対してクエリを実行します。
  • 5 つの Tablix を作成し、各 Tablix の前にPageBreakを追加して、Excel で異なるタブに配置されるようにします。
  • NoRowsMessageを設定するか、 RowNumber関数に基づく式を使用してこれらの行 に沿って Tablix を非表示にします
  • クライアント ID を選択するためのパラメーターを作成し、WHEREそれをデータセットの句で使用します。

注意が必要なのは、複数の Excel ファイルを生成する方法です。SSRS は一度に 1 つのエクスポートを行うため、基本的なオプションは次のとおりです。

  1. 1 つの XLS に複数のクライアントを配置します (つまり、パラメーターを使用せず、ワークシートの列として clientId を含めます)。
  2. ユーザーに一度に 1 つのクライアントを選択してもらい、一度に 1 つの XLS をエクスポートします。
  3. レポートの生成を自動化します。
于 2013-02-10T09:26:07.867 に答える