SSRS Получить предыдущее значение в группе строк

У меня есть таблица с группировкой строк, пытающаяся выполнить расчет на основе предыдущей строки в группе. поэтому я проверил Last(Fields!InQty.Value) и поместил его в общую ячейку. и он получает значение той же строки:

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

Когда я попробовал Previous(Fields!InQty.Value), он получил значение из последней строки в предыдущей группе:

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

Итак, как получить предыдущее значение в той же группе, а также как проверить, является ли строка первой в группе. Спасибо.


person Amr Ibrahim    schedule 12.03.2017    source источник
comment
Я всегда предполагал, что функция Previous в SSRS имеет необязательный параметр области; увы, нет. Показывает, как часто я им пользуюсь. Возможно, вам придется подумать о выполнении этого расчета в наборе данных SQL.   -  person R. Richards    schedule 12.03.2017
comment
social.msdn.microsoft.com/Forums/sqlserver/en-US/   -  person Snowlockk    schedule 13.03.2017


Ответы (2)


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

=IIF(Previous(Fields!ItemName.Value)=Fields!ItemName.Value,Previous(Fields!InQty.Value),Nothing)

...Или замените Nothing какой-нибудь константой, если она является частью более крупного вычислительного выражения.

person Wesley Marshall    schedule 13.03.2017

Я думаю, что лучший способ в SSRS сделать это — использовать значение RowNumber для группы, в которой находится ячейка (я называю ее «Элемент» в приведенном ниже примере), и проверить, что значение RowNumber для группы больше, чем 1 перед сбором предыдущего значения. Если он не больше 1, в ячейку таблицы можно поместить Ничего:

=Iif(RowNumber("Item") > 1, Previous(Fields!InQty.Value), Nothing)
person idclaar    schedule 30.04.2020