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

Другие вопросы по тегам