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

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

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

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

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

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


person Saajid Ismail    schedule 07.07.2010    source источник


Ответы (2)


Группы в таблицах работают аналогично группам в 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 есть учебные пособия, иллюстрирующие использование группировки в отчете.

person Community    schedule 07.07.2010

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

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

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

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

person Saajid Ismail    schedule 07.07.2010
comment
Вышеупомянутое сработало для меня, хотя я не полностью понимаю проблему или решение. Поэтому я отмечу это как правильное решение, когда SO позволит мне, если только кто-то не сможет предложить лучшее понимание. - person Saajid Ismail; 07.07.2010