第 3 课:为表报表定义数据集 (Reporting Services)
定义数据源后,您需要定义数据集。 在 Reporting Services 中,在报表中使用的数据包含在“数据集”中。 数据集包括一个指向数据源的指针、将由报表使用的查询以及计算字段和变量。
可以在报表设计器中使用查询设计器来设计查询。 本教程将创建一个查询,用于从 AdventureWorks20122008 数据库中检索销售订单信息。
为报表数据定义 Transact-SQL 查询
在“ 报表数据 ”窗格中,单击“ 新建”,然后单击“ 数据集...”。此时会打开“ 数据集属性 ”对话框。
在“名称”框中,键入 AdventureWorksDataset。
单击“使用在我的报表中嵌入的数据集”。
请确保数据源的名称 AdventureWorks2012 位于 “数据源 ”文本框中,并且 “查询类型 ”为 “文本”。
将以下 Transact-SQL 查询键入(或复制并粘贴)到“查询”框中。
SELECT soh.OrderDate AS [Date], soh.SalesOrderNumber AS [Order], pps.Name AS Subcat, pp.Name as Product, SUM(sd.OrderQty) AS Qty, SUM(sd.LineTotal) AS LineTotal FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.Product AS pp ON sd.ProductID = pp.ProductID 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 HAVING ppc.Name = 'Clothing'
(可选)单击“查询设计器”按钮。 查询将在基于文本的查询设计器中显示。 通过单击“编辑为文本”,可以切换到图形查询设计器。 单击查询设计器工具栏上的“运行 (!) ”按钮查看查询结果。
可以看到 AdventureWorks2012 数据库中四个不同表中六个字段的数据。 查询利用别名等 Transact-SQL 功能。 例如,SalesOrderHeader 表称为 soh。
单击“确定”退出查询设计器。
单击“确定”退出“数据集属性”对话框。
此时将在“报表数据”窗格中显示 AdventureWorksDataset 数据集和字段。
下一个任务
您已成功指定了一个用于检索报表数据的查询。 接下来将创建报表布局。 请参阅第 4 课:将表添加到报表 (Reporting Services) 。
另请参阅
SQL Server Data Tools 的报表设计中的查询设计工具 (SSRS)
SQL Server 连接类型 (SSRS)
教程:编写 Transact-SQL 语句