共用方式為


第 1 課:定義矩陣報表的資料集查詢

  • 在這一課,您會將新的報表加入到您在<建立基本資料表報表>教學課程中建立的報表伺服器專案、定義資料來源,以及定義資料集查詢。您將使用 AdventureWorks2008 範例資料庫做為您的資料來源。本教學課程假設這個資料庫是在本機電腦上安裝之預設 SQL Server 的執行個體中。

開啟現有的 Reporting Services 專案

  1. 按一下 [開始],依序指向 [所有程式] 和 [Microsoft SQL Server 2008],然後按一下 [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. [名稱] 方塊中,輸入 AdventureWorksMatrixData。

  3. [資料來源] 中,按一下 [新增][資料來源屬性] 對話方塊隨即開啟。

  4. [名稱] 中,輸入 AdventureWorks2008。

    確認有選取 [內嵌連接],而且 [類型]Microsoft SQL Server

  5. [連接字串] 中,輸入下列字串:

    Data source=localhost; initial catalog=AdventureWorks2008
    
  6. 按一下 [確定]。

    資料來源會出現在 [報表資料] 窗格中。

  7. 在 [報表資料] 窗格中,以滑鼠右鍵按一下 AdventureWorks2008,然後按一下 [加入資料集]

  8. [名稱] 中輸入 Sales。

  9. [查詢類型] 中,確認 [文字] 已選取。

  10. [查詢] 窗格下,按一下 [查詢設計工具],即可開啟以文字為基礎的查詢設計工具。

  11. 在查詢窗格中,貼上下列 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')
    
  12. 若要檢視查詢的結果,按一下查詢設計工具工具列上的 [執行] (!)。

    在結果集中,您會在 AdventureWorks2008 資料庫中,看到來自 7 個不同資料表之 18 個欄位的資料。此查詢包括可用於報表中群組資料的各種欄位,包括訂購日期的年份和月份、銷售領域的地理位置 (針對國家地區和領域),以及產品類別目錄和子類別目錄。此外,銷售資料已篩選為僅擷取 2003 和 2004 年的銷售訂單、針對發生在北美洲的銷售,以及針對 Clothing 和 Components 類別目錄,和針對從字母 C 開始的子類別目錄。在本教學課程中,篩選用於建立可以在單一頁面上顯示的精簡範例。

  13. 按一下 [確定]。 再按一下 [確定]

    資料集查詢中的欄位會出現在 [報表資料] 窗格中。

下一項工作

您已順利指定一項擷取報表資料的查詢。下一步,您會將矩陣資料區域加入到設計介面,並透過加入群組來組織矩陣中的資料。請參閱<第 2 課:加入包含資料列和資料行群組的矩陣資料區域>。