Отчет SSRS Tablix, обрабатывающий итоги за период по столбцам и сравнения вложенных отчетов

#sql-server-2008 #reporting-services

#sql-server-2008 #службы отчетов

Вопрос:

Я новичок в SSRS (2008) и пытаюсь скопировать существующий отчет Access. В отчете перечислены итоговые данные по продажам по месяцам, и у меня не возникло проблем с преобразованием базовых данных в tablix. Однако затем исходный отчет Access суммирует столбцы по кварталам, 6 месяцам и годовым значениям и, более того, применяет вложенные отчеты для сравнения их с итогами и целевыми показателями за предыдущий год. Схематично таким образом

 Распродажа Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь декабрь Всего
 Клиент 1 1 11 10 8 1 2 0 0 0 1 3 4 40
 Клиент 2 0 1 3 1 0 0 0 1 1 0 2 1 10
 Месячные итоги 1 12 13 9 1 2 0 1 1 1 5 5 50
 Ежеквартально 26 12 2 11
 6 Ежемесячных 38 13
 Ежегодно 51

 Итоги за предыдущий год 2 10 10 5 5 0 0 0 0 0 0 10
 Ежемесячная разница -1 2 3 4 -4 2 0 1 1 1 5 -5
 Квартальная разница 4 2 0 10 

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

У меня все работает нормально для первых 4 строк (продажа, клиент 1, клиент 2 и месячные итоги) в приведенном выше, но я не вижу лучшего способа

  1. Отображение квартальных итогов etc
  2. Отображение вложенных отчетов для отображения предыдущих лет и целевых значений с различиями между ними и текущими значениями.

У меня есть полный доступ к SQL Server, и мне комфортно работать со сложными запросами и хранимыми процедурами, поэтому я был склонен сгенерировать значения в таблице и отобразить их, но есть ли лучший способ? В частности, было бы полезно обрабатывать квартальные итоги etc в SSRS.

Ответ №1:

Я думаю, что невозможно объединить квартальные итоги только с помощью Tablix, если только в вашей таблице SQL нет отдельного столбца с именем «Квартал».

Итак, чтобы выполнить ваше требование, вам нужно написать простую хранимую процедуру, которая возвращает результирующую таблицу вместе с еще одним дополнительным столбцом с именем «Квартал«, который содержит значения из «Q1 .. Q4», которые вычисляются на основе поля месяц продаж.

Затем вы можете добавить этот новый столбец (квартал) в качестве ColumnGroup поверх существующей группы в табликсе.

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

Комментарии:

1. Спасибо. Я действительно впечатлен SSRS, но иногда подход к вещам более сложным, чем обычные книжные примеры, совсем не очевиден