第 3 课:定义表报表的数据集 - SQL Server Reporting Services

定义分页报表的数据源后,需要定义数据集。 在 Reporting Services 中,在报表中使用的数据包含在“数据集”中。 数据集包括一个指向数据源的指针、将由报表使用的查询、计算字段和变量。

在报表设计器中使用查询设计器来定义数据集。 在本教程中,将创建一个查询,用于从 AdventureWorks2022 数据库中检索销售订单信息。

为报表数据定义 Transact-SQL 查询

  1. 在“报表数据”窗格中,选择“新建”>“数据集...”。“数据集属性”对话框将打开,并显示“查询”部分。

    Screenshot of the Dataset Properties dialog box showing the query section.

  2. 在“名称”框中,输入“AdventureWorksDataset”。

  3. 然后选择“使用在我的报表中嵌入的数据集”单选按钮。

  4. 从“数据源”下拉框中,选择 AdventureWorks2022。

  5. 有关查询类型,选择“文本”单选按钮。

  6. 将以下 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'
    
  7. (可选)选择“查询设计器”按钮。 查询将在基于文本的“查询设计器”中显示。 通过选择“查询设计器”工具栏上的 运行按钮,查看查询结果。 显示的数据集包含来自 AdventureWorks2022 数据库的四个表的六个字段。 查询利用别名等 Transact-SQL 功能。 例如,SalesOrderHeader 表称为 soh。

  8. 选择“确定”退出“查询设计器”。

  9. 选择“确定”退出“数据集属性”对话框。

“报表数据”窗格将显示 AdventureWorksDataset 数据集和字段。

Screenshot of the Datasets folder showing the AdventureWorksDataset and its fields.

下一步

你已成功指定了一个用于检索报表数据的查询。 接下来将创建报表布局。 继续学习第 4 课:向报表添加表 (Reporting Services)