2016-04-01 2 views
3

Я использую стиль tablix для отображения диапазона дат, основанного на параметре диапазона дат. На рисунке ниже показано CAT1-CAT20 с общим количеством случаев. Мне нужна помощь в том, как рассчитать базу Case% по общей сумме случаев.SSRS - вычисление строк с использованием общего количества столбцов

Например: Общий кол-во случаев = 3,393, CAT1 = 11, Case% для CAT1 = 0.324% (11/3,393). У меня возникли трудности с выяснением способа вычисления Case% с использованием общего количества случаев.

Я написал код в SQL, но когда я добавлю его в набор данных SSRS, он отключается. Заранее спасибо.

enter image description here

Вот 4 дня данные (Примечание: Это фактический отчет). У меня есть 2 набора данных 1) RSNCD_SUB по дате, подсчитывая регистр по категориям (код причины). 2) RSNCD_TTL по дате, подсчет случаев по данным, и я использую матрицу tablix. enter image description here

enter image description here

Ниже приводится сравнение при запуске отчета с использованием нескольких даты против одного дня. Как вы можете видеть, расчет на 1-дневный прогон верен, но он неверен в течение нескольких дней.

enter image description here

ответ

0

Убедитесь, что второй столбец данных находится в той же группе столбцов, как и первый. Затем используйте следующее выражение, где "DAY" ваша группа столбцов:

=Sum(Fields!CASE_COUNT.Value)/Sum(Fields!CASE_COUNT.Value, "DAY") 

Первый Sum не имеет объема указан, поэтому содержит только значения для соответствующей категории и даты. Второй Sum будет включать все значения за этот день, независимо от группировки категорий.

Не забудьте установить форматирование в ячейке с этим выражением, чтобы отобразить его как процент, например. 0.000%

enter image description here

enter image description here

Редактировать:

При использовании "DAY" как сфера, проценты за каждый день независимы. Если вместо этого вы хотите получить процентные значения относительно всей матрицы, используйте имя матрицы, например. "Tablix1" вместо "DAY".

Если некоторые категории не имеют значения в определенные дни, вы можете использовать IIF оставить ячейку пустой вместо отображения 0%:

=IIF(Sum(Fields!CASE_COUNT.Value) > 0, 
    Sum(Fields!CASE_COUNT.Value)/Sum(Fields!CASE_COUNT.Value, "Tablix3"), 
    nothing) 
+0

Спасибо Пито. Он работает, когда это единственная дата. Данные столбцов категории могут иметь больше категорий (Cat 21 на 3/21, Cat 22 на 3/23 и т. Д.). Если это одна дате от 3/20, скажем, у Cat1 есть 34, а Total для 3/20 - 169 = 20.12, но при запуске отчета от 3/24 до 3/26 расчет неверен. – Arsee

+0

@Arsee Итак, когда вы используете несколько дат, вы хотите, чтобы проценты были для всех значений по всем датам? Если это так, новое выражение, добавленное в мой ответ, должно сделать трюк. –

+0

Спасибо. Итак, «DAY» - это имя набора данных, а «Tablix1» - это имя свойства? – Arsee

Смежные вопросы