Урок 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).