#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 и месячные итоги) в приведенном выше, но я не вижу лучшего способа
- Отображение квартальных итогов etc
- Отображение вложенных отчетов для отображения предыдущих лет и целевых значений с различиями между ними и текущими значениями.
У меня есть полный доступ к SQL Server, и мне комфортно работать со сложными запросами и хранимыми процедурами, поэтому я был склонен сгенерировать значения в таблице и отобразить их, но есть ли лучший способ? В частности, было бы полезно обрабатывать квартальные итоги etc в SSRS.
Ответ №1:
Я думаю, что невозможно объединить квартальные итоги только с помощью Tablix, если только в вашей таблице SQL нет отдельного столбца с именем «Квартал».
Итак, чтобы выполнить ваше требование, вам нужно написать простую хранимую процедуру, которая возвращает результирующую таблицу вместе с еще одним дополнительным столбцом с именем «Квартал«, который содержит значения из «Q1 .. Q4», которые вычисляются на основе поля месяц продаж.
Затем вы можете добавить этот новый столбец (квартал) в качестве ColumnGroup поверх существующей группы в табликсе.
Следовательно, вся идея заключается в создании результирующего набора со всеми возможными столбцами, для которых вы хотите сгруппировать.
Комментарии:
1. Спасибо. Я действительно впечатлен SSRS, но иногда подход к вещам более сложным, чем обычные книжные примеры, совсем не очевиден