SSRS Как разделить результаты строк на сводку строк внешней группы

#reporting-services #ssrs-tablix #divide

Вопрос:

Я чувствую, что это должно быть легко, но я не могу этого понять.

введите описание изображения здесь

[Просмотр результатов]

введите описание изображения здесь

Это логически то, что, по моему мнению, должно сработать:

 =(ReportItems("CustCounts2").value/ReportItems("RowTotal2").value)
 

Но RowTotal2 является внешней группой и не будет отображаться.

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

1. Можете ли вы поделиться своими группами строк и столбцов (ниже главного окна дизайна). Также расширьте снимок экрана основного дизайна, чтобы мы могли видеть, где находятся ваши группы строк

Ответ №1:

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

Я использовал это для создания некоторых примеров данных

Я создал набор DataSet1 данных со следующим запросом к набору данных

 DECLARE @t table(office varchar(10), EstimateStatus varchar(10), Counts int)

INSERT INTO @t VALUES
('Office A', 'Loss', 92),
('Office A', 'Win', 971),
('Office B', 'Loss', 50),
('Office B', 'Win', 500)

SELECT * FROM @t
 

Затем я добавил матрицу, добавил office в качестве группы строк и EstimateStatus в качестве группы столбцов и, наконец, посчитал данные. Затем я добавил итоговые значения как для групп строк, так и для групп столбцов.

Наконец, я удалил последний столбец, который был сгенерирован (так как это был столбец общего процента, которого у вас не было в вашем дизайне).

Я переименовал группу строк для ясности GrpOffice , как вы можете видеть

Дизайн выглядит так

введите описание изображения здесь

В столбце процент на уровне офиса я использовал следующее выражение

 =SUM(Fields!Counts.Value)/SUM(Fields!Counts.Value, "GrpOffice")
 

Это означает, что вы получаете сумму подсчетов для этой строки (даже если их всего 1) и делите ее на сумму подсчетов для всей группы "GrpOffice" . Обратите внимание, что это имя должно быть заключено в кавычки и учитываться регистр.

Для общей строки я использовал аналогичное выражение..

 =Sum(Fields!Counts.Value) / Sum(Fields!Counts.Value, "DataSet1")
 

Это считывает, получает сумму подсчетов в текущей области (в данном случае общая группа столбцов) и делит на сумму подсчетов для всего набора данных, называемого "DataSet1"

С форматом p2 в этих ячейках, чтобы привести его в порядок, мы получим следующий результат.

введите описание изображения здесь

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

1. Спасибо! Я бы никогда не предположил, что вам нужно включить фактическое имя группы строк.

2. Без проблем. Это стоит прочитать, как только вы поймете области применения, жизнь станет немного проще. Вы не тратите время на попытки, которые никогда не сработают, и часто находите пути решения проблем, которые кажутся гораздо более сложными. Это немного многословно, но примерно в середине страницы приведены примеры, которые объясняют некоторые вещи.. docs.microsoft.com/en-us/sql/reporting-services/report-design/…

3. Я делаю много отчетов SSRS, так что это очень полезно. Еще раз спасибо, Алан.