第 1 課:定義矩陣報表的資料集查詢
在這一課,您會將新的報表加入到您在建立基本資料表報表教學課程中建立的報表伺服器專案中,定義資料來源,以及定義資料集查詢。您將使用 AdventureWorks2008R2 範例資料庫做為資料來源。本教學課程假設這個資料庫是位於本機電腦上所安裝 SQL Server 的預設執行個體中。
開啟現有的 Reporting Services 專案
按一下 [開始],依序指向 [所有程式] 和 [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
按一下 [確定]。
資料來源會出現在 [報表資料] 窗格中。
在 [報表資料] 窗格中,以滑鼠右鍵按一下 AdventureWorks2008R2,然後按一下 [加入資料集]。
在 [名稱] 中輸入 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')
若要檢視查詢的結果,請在查詢設計工具工具列上,按一下 [執行] (!)。
您會在結果集中,看到來自 AdventureWorks2008R2 資料庫中,7 個不同資料表的 18 個欄位資料。此查詢包括可用於報表中群組資料的各種欄位,包括訂購日期的年份和月份、銷售領域的地理位置 (針對國家/地區和領域),以及產品類別目錄和子類別目錄。此外,銷售資料已篩選為僅擷取 2003 和 2004 年的銷售訂單、針對發生在北美洲的銷售,以及針對 Clothing 和 Components 類別目錄,和針對從字母 C 開始的子類別目錄。在本教學課程中,篩選用於建立可以在單一頁面上顯示的精簡範例。
按一下 [確定]。 再按一下 [確定]。
資料集查詢中的欄位會出現在 [報表資料] 窗格中。