第 1 課:定義矩陣報表的資料集查詢
- 在這一課,您會將新的報表加入到您在<建立基本資料表報表>教學課程中建立的報表伺服器專案、定義資料來源,以及定義資料集查詢。您將使用 AdventureWorks2008 範例資料庫做為您的資料來源。本教學課程假設這個資料庫是在本機電腦上安裝之預設 SQL Server 的執行個體中。
開啟現有的 Reporting Services 專案
按一下 [開始],依序指向 [所有程式] 和 [Microsoft SQL Server 2008],然後按一下 [Business Intelligence Development Studio]。
在 [檔案] 功能表上,指向 [開啟],然後按一下 [專案/方案]。
巡覽至名為 Tutorial 的報表伺服器專案。
在 Tutorial 資料夾中,按一下 Tutorial.sln。
按一下 [開啟] 以開啟專案。
Tutorial 專案隨即顯示在 [方案總管] 中。
建立新的報表
在 [方案總管] 中,以滑鼠右鍵按一下 [報表],指向 [加入],再按一下 [新增項目]。
[!附註]
如果看不到方案總管,請在 [檢視] 功能表上,按一下 [方案總管]。
在 [加入新項目] 對話方塊的 [範本] 窗格中,選取 [報表]。
在 [名稱] 中,輸入 Sales by Area and Year.rdl,再按一下 [加入]。
報表設計師會在 [設計] 模式下開啟,並顯示空白的報表定義。
定義報表資料的 Transact-SQL 查詢
在 [報表資料] 窗格中,按一下 [新增],然後按一下 [資料來源]。
在 [名稱] 方塊中,輸入 AdventureWorksMatrixData。
在 [資料來源] 中,按一下 [新增]。[資料來源屬性] 對話方塊隨即開啟。
在 [名稱] 中,輸入 AdventureWorks2008。
確認有選取 [內嵌連接],而且 [類型] 為 Microsoft SQL Server。
在 [連接字串] 中,輸入下列字串:
Data source=localhost; initial catalog=AdventureWorks2008
按一下 [確定]。
資料來源會出現在 [報表資料] 窗格中。
在 [報表資料] 窗格中,以滑鼠右鍵按一下 AdventureWorks2008,然後按一下 [加入資料集]。
在 [名稱] 中輸入 Sales。
在 [查詢類型] 中,確認 [文字] 已選取。
在 [查詢] 窗格下,按一下 [查詢設計工具],即可開啟以文字為基礎的查詢設計工具。
在查詢窗格中,貼上下列 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')
若要檢視查詢的結果,按一下查詢設計工具工具列上的 [執行] (!)。
在結果集中,您會在 AdventureWorks2008 資料庫中,看到來自 7 個不同資料表之 18 個欄位的資料。此查詢包括可用於報表中群組資料的各種欄位,包括訂購日期的年份和月份、銷售領域的地理位置 (針對國家地區和領域),以及產品類別目錄和子類別目錄。此外,銷售資料已篩選為僅擷取 2003 和 2004 年的銷售訂單、針對發生在北美洲的銷售,以及針對 Clothing 和 Components 類別目錄,和針對從字母 C 開始的子類別目錄。在本教學課程中,篩選用於建立可以在單一頁面上顯示的精簡範例。
按一下 [確定]。 再按一下 [確定]。
資料集查詢中的欄位會出現在 [報表資料] 窗格中。