チュートリアル: テーブル レポートのデータセットを定義する (Reporting Services)
ページ割り付けレポートのデータ ソースを定義した後で、データ ソースのデータセットを定義する必要があります。 Reporting Services では、レポートで使用するデータは データセットに格納されます。 データセットには、データ ソースへのポインターと、レポートで使用されるクエリ、計算フィールド、変数が含まれています。
このチュートリアルでは、次の作業を行いました。
- テーブル レポートのデータセットを定義する。
- 販売注文情報を取得する Transact-SQL クエリを作成します。
前提条件
- 「手順 1: レポート サーバー プロジェクトを作成する」の完了。
- 「手順 2: 接続情報を指定する」の完了。
レポート データ用に Transact-SQL クエリを定義する
AdventureWorks2022
データベースから販売注文情報を取得する Transact-SQL クエリを作成します。
Visual Studio で販売注文レポート定義ファイル (.rdl) を開きます。
[レポート データ] ウィンドウで、[新規] > [データセット...] の順に選択します。 [データセットのプロパティ] ダイアログが開き、 [クエリ] セクションが強調表示されます。
[名前] ボックスに「AdventureWorksDataset」と入力します。
[個人用レポートに埋め込まれたデータセットを使用する] オプションを選択します。
[データ ソース] リストで、[AdventureWorks2022] を選択します。
[クエリの種類] として [テキスト] オプションを選択します。
[クエリ] テキスト ボックスに次の Transact-SQL クエリを入力するか、コピーして貼り付けます。
SELECT soh.OrderDate AS [Date], soh.SalesOrderNumber AS [Order], pps.Name AS [Subcat], pp.Name as [Product], SUM(sd.OrderQty) AS [Qty], SUM(sd.LineTotal) AS [LineTotal] FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.Product AS pp ON sd.ProductID = pp.ProductID INNER JOIN Production.ProductSubcategory AS pps ON pp.ProductSubcategoryID = pps.ProductSubcategoryID INNER JOIN Production.ProductCategory AS ppc ON ppc.ProductCategoryID = pps.ProductCategoryID GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name,soh.SalesPersonID HAVING ppc.Name = 'Clothing'
(オプション) [クエリ デザイナー] を選択します。 クエリは、テキスト ベースの [クエリ デザイナー] に表示されます。 クエリ ( ) の結果を表示するには、[クエリ デザイナー] ツールバーの[実行] を選択します。 表示されるデータセットには、
AdventureWorks2022
データベースの 4 つのテーブルからの 6 個のフィールドが含まれています。 クエリでは、エイリアスなど Transact-SQL の機能が利用されます。 たとえば、SalesOrderHeader テーブルはsoh
と呼ばれます。[OK] を選択してクエリ デザイナーを終了します。
[OK] を選択して [データセットのプロパティ] ダイアログを閉じます。 [レポート データ] ウィンドウに AdventureWorksDataset データセットとフィールドが表示されます。