MS Report Designer - Что такое группы таблиц и как они используются? - PullRequest
1 голос
/ 07 июля 2010

Я работаю над проектом с некоторыми существующими отчетами MS, используя Reporting Services 2000/2005 и Visual Studio 2005 со встроенным конструктором отчетов.

Я столкнулся с отчетом, в котором используется таблица для отображения данных, извлекаемых с помощью сохраненного процесса. Моя работа потребовала, чтобы я изменил отчет и сохраненный Proc.

Я внес изменения в сохраненный процесс, и он возвращает правильные данные при тестировании в SQL Management Studio. Однако в отчете некоторые данные отсутствуют по причине, хотя я использую точно такие же параметры.

У меня подлое предчувствие, что это связано с группами таблиц, определенными для основной таблицы отчета. В таблице определены 2 группы таблиц. Я удалил некоторые элементы из 2-й группы таблиц, так как они были удалены из сохраненного процесса и отчета. Возможно, мне нужно добавить новые поля / столбцы из сохраненного процесса в группу таблиц?

Может ли кто-нибудь указать мне правильное направление относительно того, как исследовать / решить эту проблему, а также какие группы таблиц и как они предназначены для использования.

Ответы [ 2 ]

0 голосов
/ 07 июля 2010

Хорошо, поэтому я добавил новые столбцы в хранимой процедуре в группу таблиц, и она работает как положено.

Я думаю, что, пропустив несколько столбцов в группе таблиц, отчет был сгруппирован по меньшему количеству полей, а это означает, что все эти строки рассматривались как одно и то же значение.

Когда я добавлял одно новое поле за раз, чтобы соответствовать полям в хранимой процедуре, повышалась точность отчета.

Я думаю, что это похоже на то, как SQL требует, чтобы каждое поле в предложении Select также отображалось в предложении Group By.

0 голосов
/ 07 июля 2010

Группы в таблицах работают аналогично группам в запросе SQL - данные в них возвращаются только один раз для каждой группы, а не один раз для каждой записи. Однако, поскольку вы также можете включить строки подробностей в таблицу, вы также можете увидеть данные как на уровне группы, так и на уровне детализации из одной таблицы отчета, тогда как для этого потребуются отдельные (под) запросы в SQL.

В качестве примера рассмотрим структуру продаж в SQL:

sales_month
sales_day
sales_product
sales_value

Вы можете вернуть список всех продаж в указанном порядке в SQL с запросом

select * from sales order by sales_month, sales_day;

Или вы можете вернуть сводку всех продаж за месяц в SQL с запросом

select sales_month, sum(sales_value) as monthly_sales 
from sales group by sales_month order by 1;

Используя таблицу отчетов, сгруппированную по месяцам, с подробными строками и нижним колонтитулом, вы можете перечислить все продажи в порядке дат с промежуточной суммой для каждого месяца в конце каждого месяца.

В справке SSRS есть учебники, иллюстрирующие использование группировки в отчете.

...