次の方法で共有


SQL Server リレーショナル データベースからのレポート データセットの作成

Reporting Services には、MicrosoftSQL Server リレーショナル データベースからレポート データを取得するためのデータ処理拡張機能が用意されています。このデータ処理拡張機能によって、リレーショナル データ テーブル、ビュー、ストアド プロシージャなど、基になるデータ ソースで定義されたさまざまなデータ構造からデータを取得できます。データ ソースに接続した後、レポート データセットを作成し、データ ソースからどのようなデータを抽出してレポートに使用するかを定義できます。Reporting Services のデータセットには、データ ソース、レポート処理時にデータを取得するためのクエリ、およびフィールドのコレクションが含まれます。データセットの定義は、レポート定義に保存されます。レポート データ ペインには、レポートで使用されている現在のデータセット定義が表示されます。

データセットは、Transact-SQL クエリ テキストまたはストアド プロシージャ呼び出しを使ってクエリを作成するか、テーブルを選択して、すべてのデータをそのテーブルから取得することによって定義します。データセットのフィールド コレクションはクエリに基づいて自動的に作成されます。フィールドを編集したり、計算フィールドを追加したりすることが可能です。計算フィールドには、式を使った値が割り当てられ、その値はクエリの実行時に計算されます。フィールドのデータ型は、.NET Framework の共通言語ランタイム (CLR) データ型のサブセットにマップされます。詳細については、「レポート データセットについて」および「SQL Server データ ソースからデータを取得する方法」を参照してください。

リレーショナル データ ソースに使用できるクエリ デザイナとして、テキスト ベースのクエリ デザイナとグラフィカル クエリ デザイナの 2 つがあります。既定では、テキスト ベースのクエリ デザイナが表示されます。テキスト ベースのクエリ デザイナは、Transact-SQL テキストを直接入力する、クエリ テキストを別のソースから貼り付ける、グラフィカル クエリ デザイナでは作成できない複雑なクエリを入力する、クエリ ベースの式を入力する、などの場合に使用します。グラフィカル クエリ デザイナは、データ ソース上のメタデータを参照しながら、クエリを対話的にデザインする場合や、データ ソース上のストアド プロシージャまたはテーブルを一覧表示する場合に使用します。詳細については、「グラフィカルなクエリ デザイナのユーザー インターフェイス」、「テキスト ベースのクエリ デザイナのユーザー インターフェイス」、および「SQL Server データ ソースからデータを取得する方法」を参照してください。

クエリを定義した後、Timeout や CaseSensitivity などのプロパティを指定したり、クエリ パラメータに値を渡すレポート パラメータを定義することもできます。クエリを実行すると、データ ソースから抽出された結果セットが表示されます。結果セットの列は、データセットのフィールドにマップされます。レポートを処理すると、データセットのフィールドにバインドされているレポート アイテムに、取得されたデータまたは集計されたデータが表示されます。レポートによって処理されるのは、クエリから取得された最初の結果セットだけです。

クエリの指定

SQL Server データ ソースでは、テキスト ベースのクエリ デザイナまたはグラフィカル クエリ デザイナを使用して、データセットにクエリを指定できます。新しいデータセットにクエリを指定するときは、既定でグラフィカル クエリ デザイナが開きます。既存のデータセット クエリが複雑すぎてグラフィカル クエリ デザイナで表示できない場合は、テキスト ベースのクエリ デザイナが開きます。両方のクエリ デザイナは、[Text] および [StoredProcedure] の種類のクエリをサポートします。クエリ デザイナを開く前に、[データセットのプロパティ] ダイアログ ボックスでクエリの種類を指定します。

Text の種類のクエリでは、クエリ パラメータがクエリ テキストに含まれている場合、対応するレポート パラメータが Reporting Services によって作成されます。StoredProcedure の種類のクエリでは、ストアド プロシージャに入力パラメータがある場合、対応するレポート パラメータが Reporting Services によって作成されます。クエリ パラメータおよびレポート パラメータの詳細については、このトピックで後述されている「クエリ パラメータの使用」を参照してください。

各クエリ デザイナの詳細については、「テキスト ベースのクエリ デザイナのユーザー インターフェイス」および「グラフィカルなクエリ デザイナのユーザー インターフェイス」を参照してください。

Text の種類のクエリの使用

クエリ デザイナが Text モードで開いた場合、Transact-SQL コマンドを入力して、データセット内のデータを定義できます。たとえば、次の Transact-SQL クエリでは、すべての従業員の名前を選択します。

SELECT FirstName, LastName
FROM   HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID

ツール バーの [実行] ボタン (!) をクリックすると、クエリが実行され、結果ペインに結果が表示されます。

別のレポートまたは sql ファイルから既存のクエリをインポートすることもできます。

StoredProcedure の種類のクエリの使用

クエリ デザイナが StoredProcedure モードで開いた場合、[データセットのプロパティ] ダイアログ ボックスで [StoredProcedure] を指定したときに、使用するストアド プロシージャが既に選択されています。

実行する別のストアド プロシージャの名前がわかっている場合は、既存のテキストを置換して、クエリ ペインに新しいストアド プロシージャの名前を入力できます。

Reporting Services では、データのセットを 1 つだけ返すストアド プロシージャをサポートしています。ストアド プロシージャから複数の結果セットが返された場合、最初の結果セットだけが使用されます。

既定値が指定されたパラメータがストアド プロシージャに含まれている場合、パラメータの値として DEFAULT キーワードを使用して Reporting Services からその値にアクセスできます。クエリ パラメータがレポート パラメータにリンクされている場合は、レポート パラメータの入力ボックスで DEFAULT キーワードを入力または指定できます。詳細については、「ストアド プロシージャ (データベース エンジン)」を参照してください。

クエリ パラメータの使用

パラメータを含むクエリ テキストまたは入力パラメータを含むストアド プロシージャの場合、レポート デザイナによって、対応するレポート パラメータがクエリの実行時にレポート定義に自動的に作成されます。レポートが実行されると、レポート パラメータの値がクエリ パラメータに渡されます。たとえば、次の SQL クエリでは、EmpID という名前のレポート パラメータが作成されます。

SELECT FirstName, LastName FROM HumanResources.Employee E INNER JOIN
       Person.Contact C ON  E.ContactID=C.ContactID 
WHERE EmployeeID = @EmpID

レポート パラメータとクエリ パラメータの関係は、[パラメータ] ([データセットのプロパティ] ダイアログ ボックス) を使用して管理できます。パラメータが使用されているクエリで、レポート パラメータにリンクされているクエリには、DECLARE ステートメントは必要ありません。

クエリ パラメータからレポート パラメータが自動的に作成されますが、レポート パラメータはレポート データ ペインで別に管理します。

注意注意

クエリ パラメータの名前を変更したり、クエリ パラメータを削除した場合、そのクエリ パラメータに対応するレポート パラメータは、自動的には変更または削除されません。レポート パラメータの削除やレポート パラメータの順序変更は、レポート データ ペイン ツール バーのボタンを使用して行うことはできません。詳細については、「レポートへのパラメータの追加」を参照してください。