次の方法で共有


レッスン 1: マトリックス レポートのデータセット クエリの定義

このレッスンでは、「基本的な表形式レポートの作成」チュートリアルで作成したレポート サーバー プロジェクトに新しいレポートを追加し、データ ソースを定義し、データセット クエリを定義します。データ ソースとして AdventureWorks2008R2 サンプル データベースを使用します。ここでは、ローカル コンピューターにインストールされた既定の SQL Server インスタンスにこのデータベースが配置されているものとします。

既存のレポート サービス プロジェクトを開くには

  1. [スタート] ボタンをクリックし、[すべてのプログラム]、[Microsoft SQL Server 2008 R2] の順にポイントして、[Business Intelligence Development Studio] をクリックします。

  2. [ファイル] メニューの [開く] をポイントし、[プロジェクト/ソリューション] をクリックします。

  3. Tutorial という名前のレポート サーバー プロジェクトに移動します。

  4. Tutorial フォルダーで Tutorial.sln をクリックします。

  5. [開く] をクリックすると、プロジェクトが開きます。

    Tutorial プロジェクトがソリューション エクスプローラーに表示されます。

新しいレポートを作成するには

  1. ソリューション エクスプローラーで [レポート] を右クリックし、[追加] をポイントして、[新しい項目] をクリックします。

    注意

    ソリューション エクスプローラーが表示されない場合は、[表示] メニューの [ソリューション エクスプローラー] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスの [テンプレート] ペインで、[レポート] を選択します。

  3. [ファイル名] に「Sales by Area and Year.rdl」と入力して、[追加] をクリックします。

    レポート デザイナーがデザイン モードで起動し、空のレポートの定義が表示されます。

レポート データ用に Transact-SQL クエリを定義するには

  1. [レポート データ] ペインで、[新規作成] をクリックし、[データ ソース] をクリックします。[データ ソースのプロパティ] ダイアログ ボックスが表示されます。

  2. [名前] に「AdventureWorks2008R2」と入力します。

    [埋め込み接続] が選択され、[種類][Microsoft SQL Server] になっていることを確認します。

  3. [接続文字列] に次のように入力します。

    Data source=localhost; initial catalog=AdventureWorks2008R2
    
  4. [OK] をクリックします。

    データ ソースがレポート データ ペインに表示されます。

  5. レポート データ ペインで AdventureWorks2008R2 を右クリックし、[データセットの追加] をクリックします。

  6. [名前] に、「売上」と入力します。

  7. [クエリの種類][テキスト] が選択されていることを確認します。

  8. クエリ ペインの下にある [クエリ デザイナー] をクリックして、テキスト ベースのクエリ デザイナーを開きます。

  9. 次の 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')
    
  10. クエリの結果を表示するには、クエリ デザイナーのツール バーにある [実行] (!) をクリックします。

    結果セットに AdventureWorks2008R2 データベースの 7 つの異なるテーブルの 18 のフィールドから取得したデータが表示されます。このクエリには、レポート内のデータをグループ化するために使用されるさまざまなフィールドが含まれています。これらのフィールドは、注文日の年および月、販売区域の地理的な場所 (国/地域および区域)、および製品カテゴリとサブカテゴリで構成されます。また、売上データは、北米での売上、Clothing および Components のカテゴリ、および文字 C で開始するサブカテゴリについて、2003 年および 2004 年の販売注文のみを取得するようにフィルター選択されます。このチュートリアルでは、フィルター処理は、1 ページに表示可能な簡潔な例を作成するために使用されます。

  11. [OK] をクリックします。 もう一度 [OK] をクリックします。

    データセット クエリのフィールドがレポート データ ペインに表示されます。

次の作業

これで、レポートのデータを取得するクエリを指定できました。次に、マトリックス データ領域をデザイン画面に追加し、グループを追加してマトリックスのデータをまとめます。「レッスン 2: 行グループと列グループを含むマトリックス データ領域の追加」を参照してください。