レッスン 1: マトリックス レポートのデータセット クエリの定義
このレッスンでは、「基本的な表形式レポートの作成」チュートリアルで作成したレポート サーバー プロジェクトに新しいレポートを追加し、データ ソースを定義し、データセット クエリを定義します。データ ソースとして AdventureWorks2008R2 サンプル データベースを使用します。ここでは、ローカル コンピューターにインストールされた既定の SQL Server インスタンスにこのデータベースが配置されているものとします。
既存のレポート サービス プロジェクトを開くには
[スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server 2008 R2] の順にポイントして、[Business Intelligence Development Studio] をクリックします。
[ファイル] メニューの [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。
Tutorial という名前のレポート サーバー プロジェクトに移動します。
Tutorial フォルダーで Tutorial.sln をクリックします。
[開く] をクリックすると、プロジェクトが開きます。
Tutorial プロジェクトがソリューション エクスプローラーに表示されます。
新しいレポートを作成するには
ソリューション エクスプローラーで [レポート] を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。
注 ソリューション エクスプローラーが表示されない場合は、[表示] メニューの [ソリューション エクスプローラー] をクリックします。
[新しい項目の追加] ダイアログ ボックスの [テンプレート] ペインで、[レポート] を選択します。
[ファイル名] に「Sales by Area and Year.rdl」と入力して、[追加] をクリックします。
レポート デザイナーがデザイン モードで起動し、空のレポートの定義が表示されます。
レポート データ用に Transact-SQL クエリを定義するには
[レポート データ] ペインで、[新規作成] をクリックし、[データ ソース] をクリックします。[データ ソースのプロパティ] ダイアログ ボックスが表示されます。
[名前] に「AdventureWorks2008R2」と入力します。
[埋め込み接続] が選択され、[種類] が [Microsoft SQL Server] になっていることを確認します。
[接続文字列] に次のように入力します。
Data source=localhost; initial catalog=AdventureWorks2008R2
[OK] をクリックします。
データ ソースがレポート データ ペインに表示されます。
レポート データ ペインで AdventureWorks2008R2 を右クリックし、[データセットの追加] をクリックします。
[名前] に、「売上」と入力します。
[クエリの種類] で [テキスト] が選択されていることを確認します。
クエリ ペインの下にある [クエリ デザイナー] をクリックして、テキスト ベースのクエリ デザイナーを開きます。
次の Transact-SQL クエリをクエリ ペインに貼り付けます。
SELECT SOH.SalesPersonID AS ID, P.FirstName, P.LastName, SOH.SalesOrderNumber AS [Order], SOH.OrderDate AS [Date], DATEPART(yy, SOH.OrderDate) AS [Year], DATEPART(mm, SOH.OrderDate) AS [Month], ST.[Group] AS [Geography], ST.CountryRegionCode AS CountryRegion, ST.Name AS Territory, PPC.Name AS Category, PPS.Name AS Subcat, PP.Name AS Product, PP.Color, PP.Size, CASE WHEN PP.Size = 'S' THEN 1 WHEN PP.Size = 'M' THEN 2 WHEN PP.Size = 'L' THEN 3 WHEN PP.Size = 'XL' THEN 4 ELSE PP.Size END AS SizeSortOrder, SUM(SD.OrderQty) AS Qty, SUM(SD.LineTotal) AS LineTotal FROM Sales.SalesPerson AS SP INNER JOIN Sales.SalesOrderHeader AS SOH ON SP.BusinessEntityID = SOH.SalesPersonID INNER JOIN Person.Person AS P ON P.BusinessEntityID = SP.BusinessEntityID INNER JOIN Sales.SalesOrderDetail AS SD ON SD.SalesOrderID = SOH.SalesOrderID INNER JOIN Production.Product AS PP ON SD.ProductID = PP.ProductID INNER JOIN Sales.SalesTerritory AS ST ON ST.TerritoryID = SP.TerritoryID 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, P.LastName, P.FirstName, ST.[Group], ST.CountryRegionCode, ST.Name, PP.Color, PP.Size HAVING (DATEPART(yy,SOH.OrderDate) IN ('2003','2004') AND ST.[Group] = 'North America' AND LEFT(PPS.Name,1) IN ('C','T') AND LEFT(PPC.Name,1) = 'C')
クエリの結果を表示するには、クエリ デザイナーのツール バーにある [実行] (!) をクリックします。
結果セットに AdventureWorks2008R2 データベースの 7 つの異なるテーブルの 18 のフィールドから取得したデータが表示されます。このクエリには、レポート内のデータをグループ化するために使用されるさまざまなフィールドが含まれています。これらのフィールドは、注文日の年および月、販売区域の地理的な場所 (国/地域および区域)、および製品カテゴリとサブカテゴリで構成されます。また、売上データは、北米での売上、Clothing および Components のカテゴリ、および文字 C で開始するサブカテゴリについて、2003 年および 2004 年の販売注文のみを取得するようにフィルター選択されます。このチュートリアルでは、フィルター処理は、1 ページに表示可能な簡潔な例を作成するために使用されます。
[OK] をクリックします。 もう一度 [OK] をクリックします。
データセット クエリのフィールドがレポート データ ペインに表示されます。
次の作業
これで、レポートのデータを取得するクエリを指定できました。次に、マトリックス データ領域をデザイン画面に追加し、グループを追加してマトリックスのデータをまとめます。「レッスン 2: 行グループと列グループを含むマトリックス データ領域の追加」を参照してください。