Вы можете использовать функцию PREVIOUS
для получения данных из предыдущего диапазона области действия (в вашем случае это будет предыдущий месяц).
Я не уверен, что именно вы хотите показать, но это простое выражение покажет значение текущего месяца в процентах от значения предыдущего месяца. Например, если январь был 50, а февраль - 60, он вернул бы 1.2 (120%, если вы форматируете, используя строку формата «p2»)
ОБНОВЛЕНО Эта часть ответа: Используя что-то вроде этого
= (Sum(Fields!Diferencia.Value)) / Previous(Sum(Fields!Diferencia.Value), "Mes1")
ПРИМЕЧАНИЕ: Имя группы "Mes1" чувствительно к регистру
Откуда он знает, какие значения суммировать? Это сложно объяснить ясно, но короткая версия состоит в том, что ваше выражение находится внутри группы столбцов 'Mes1', поэтому SUM(Fields!Diferencia.Value)
означает сумму полей! Diferencia.Value в текущей области, текущей областью является группа месяцев. Когда мы используем ПРЕДЫДУЩУЮ функцию, происходит то же самое, за исключением того, что на этот раз мы говорим SSRS использовать предыдущий набор данных из той же области. Scope - это все еще ваша месячная группа Mes1, но мы просто получаем данные из предыдущей записи группы (в данном случае предыдущего месяца). Надеюсь, что это имеет смысл!
Пример отчета
Я построил протокол испытаний на основе образца базы данных NorthWind.
Набор данных просто содержал итоговые значения заказа по номеру месяца и стране.
Я добавил матрицу и установил группу строк на Country
, группу столбцов на OrderMonth
и значения данных на OrderValue
.
Я добавил несколько дополнительных столбцов, чтобы показать предыдущие и рассчитанные значения роста.
Дизайн выглядит следующим образом.
Выражение для каждого столбца в группе:
Ток:
=Sum(Fields!OrderValue.Value)
Предыдущая:
=PREVIOUS(Sum(Fields!OrderValue.Value), "OrderMonth")
Текущий / Предыдущий =
=IIF(PREVIOUS(Sum(Fields!OrderValue.Value), "OrderMonth") = 0 , 0, Sum(Fields!OrderValue.Value))
/
IIF(PREVIOUS(Sum(Fields!OrderValue.Value), "OrderMonth") = 0 , 1, PREVIOUS(Sum(Fields!OrderValue.Value), "OrderMonth") )
Окончательный результат выглядит следующим образом, что, надеюсь, вам нужно.