Динамическая текущая сумма SSRS

Я пытаюсь включить кумулятивный итоговый столбец в матрицу отчета. Это выражение, которое я использую сейчас:

=RunningValue(Ceiling((SUM(Fields!MINUTES.Value)/60)*4)/4,Sum,"RowGroup")

Проблема в том, что общее количество сбрасывается каждый день.

У меня есть 3 группы в отчете: Родитель - День месяца, тип, затем подтип. Я хочу, чтобы подтипы накапливались в течение дня:

Итак, 1 июня / праздничный / годовой = 2 - совокупный = 2 .. 2-й июнь / праздничный / годовой = 1 - совокупный = 3

rowgroup в приведенном выше выражении - это группа подтипа 3-го уровня в матрице.

Что бы я ни пытался, я не могу подвести итоги за несколько дней, как я уже сказал выше, похоже, это не переносится на следующий день.

Ниже приведен образец набора данных:

+------+------------+---------+----------+---------+
| User |    Date    |  Type   | Subtype  | Minutes |
+------+------------+---------+----------+---------+
|  158 | 13/02/2015 | Holiday | Annual   |      90 |
|  158 | 13/02/2015 | Meeting | Training |     300 |
|  158 | 13/02/2015 | Lunch   | Lunch    |      60 |
|  158 | 03/06/2015 | Holiday | Annual   |     120 |
|  158 | 03/06/2015 | Meeting | Meeting  |     285 |
|  158 | 04/06/2015 | Holiday | Sick     |     120 |
|  158 | 04/06/2015 | Holiday | Annual   |     200 |
+------+------------+---------+----------+---------+

Моя группа столбцов матрицы - это пользователь. Группы строк: дата, затем тип, затем подтип.

Затем у меня есть общий столбец за пределами группы столбцов.

Теперь я пытаюсь добавить в отчет совокупный итог на основе столбцов type и sub-type, который суммирует minutes.

В качестве примера (глядя на записи holiday, annual):

03/06/2015 - 120 minutes
13/02/2015 - 90 minutes = 210 minutes 
04/06/2015 - 200 minutes = 410 minutes.

person paulmezza    schedule 07.06.2015    source источник


Ответы (1)


Взято со страницы MSDN для RunningValue, добавление scope к вашему выражению будет иметь этот эффект.

Значение RunningValue сбрасывается до 0 для каждого нового экземпляра области. Если указана группа, текущее значение сбрасывается при изменении выражения группы. Если указана область данных, текущее значение сбрасывается для каждого нового экземпляра области данных. Если указан набор данных, текущее значение не сбрасывается для всего набора данных.

Чтобы устранить проблему, просто удалите область действия:

=RunningValue(Ceiling((SUM(Fields!MINUTES.Value)/60)*4)/4,Sum)

Это будет общий результат за все дни (поскольку дни являются вашим самым высоким уровнем). Если это неверно, не могли бы вы дать нам пример того, что в данный момент делается в отчете и что вы хотите от него?

person KidCode    schedule 07.06.2015
comment
привет, извините попробую привести более подробный пример. мой sql возвращает отдельные записи в день / тип / подтип. поэтому у меня есть столбец, в котором производится сумма по каждой группировке за день. итак, годовая сумма праздника 1 июня = 2. Сумма больничного листа 1 июня = 3, так что это будет означать, что в кумулятивном столбце будет 2 и 3, а затем следующая строка в матрице будет для годовой суммы праздника 2 июня = 4. поэтому i хотите, чтобы в кумулятивном столбце было 6. т.е. 2 от 1 июня и 4 отсюда. и так далее, и так далее по матрице. так что в основном кумулятивный итог по матрице для каждого типа / подтипа - person paulmezza; 08.06.2015
comment
Просто измените объем RunningValue на все, что вы хотите накапливать. Я не могу привести подробный пример с уровнем детализации в вашем вопросе. Опубликуйте образец набора данных, и я обновлю свой ответ. - person KidCode; 08.06.2015
comment
привет, я обновил вопрос, включив в него образцы данных и более подробное объяснение того, что я хочу, чтобы он делал - person paulmezza; 08.06.2015