Групповые переменные SSRS 2008 - количество элементов в группе
У меня есть отчет, в котором собрана целая куча статистических данных, представляющих системные тревоги.
Я сделал отчет в стиле детализации, вытащив все статистические данные в выбранном пользователем диапазоне дат, а затем добавил группу в свой codeId сигнала тревоги, чтобы у меня было что сгруппировать.
То, что я хотел бы сделать, это подсчитать количество элементов в этих группах по codeId. Я планирую использовать счет как часть объединенной строки, которая составляет заголовок всей группы. В основном это говорит "Код Аварии # {codeId} - {Описание} - Всего: {Всего}".
Моя проблема заключается в том, что для подсчета в моем запросе необходимо предварительно сгруппировать данные, прежде чем они попадут в отчет. И если я сделаю это, то у меня не будет моих подробных данных для расширения группы. А запуск сводки и набора подробных данных - это немного у меня над головой, но есть вариант, который мне, возможно, придется рассмотреть.
Поэтому я надеялся, что смогу использовать групповую переменную для подсчета количества элементов, содержащихся в группе. Может кто-нибудь сказать мне грубый набор шагов, чтобы попытаться осуществить это?
1 ответ
Похоже, использование здесь переменной Group сделало бы это более сложным, чем нужно.
Поскольку у вас уже есть группа в SSRS, вы можете использовать функцию CountRows. Поместите это выражение в заполнитель, например:
="Alarm Code #" & Fields!CodeID.Value
& " - " & First(Fields!Description)
& " - Total: " & CountRows()
Или, в зависимости от размера, вы можете добавить коррелированный подзапрос к вашему SQL-запросу:
SELECT
CodeID,
MyField,
MyOtherField,
(SELECT COUNT(*) FROM myTable t1 WHERE t1.CodeID = t2.CodeID) AS MyRowCount
FROM
myTable t2
Это не особенно эффективный SQL, поэтому, если вы запускаете его на сотнях тысяч строк или более, я бы выбрал первый подход.