Вы можете сделать это напрямую в SSRS, но он беспорядочный и редко даст превосходные результаты, если вы используете динамическое c количество столбцов, что почти всегда так.
В конечном итоге вам придется использовать немного кода VBA для отслеживания последнего значения, но если вы используете его, например, в выражении цвета фона, это может испортить ситуацию.
Существует множество подобных вопросов, большинство из которых либо остаются без ответа, либо полагаются на вас. зная, какие значения даты заранее.
ПРИМЕЧАНИЕ : я использовал здесь оконную функцию, я думаю, что она доступна в SQL 2008, но не может быть уверенной.
Итак, для начала я создал несколько тестовых данных
Затем я суммирую это во временную таблицу (при условии, что вам нужно выполнить суммирование по проекту и дате?), Здесь я использую оконную функцию, чтобы получить номер строки. Это необходимо в случае, если в датах есть пробелы.
Наконец, я присоединяю временную таблицу к себе, смещая ее на 1 строку (используя номер строки)
Вот полный код, который я использовал в мой набор данных.
-- create some sample data
DECLARE @t TABLE(dt date, project varchar(10), amount float)
INSERT INTO @t VALUES
('2020-04-01', 'A', 10),('2020-04-01', 'A', 10),('2020-04-01', 'B', 10),('2020-04-01', 'C', 10),('2020-04-01', 'C', 10),
('2020-04-02', 'A', 20),('2020-04-02', 'A', 20),('2020-04-02', 'B', 10),('2020-04-02', 'C', 20),('2020-04-02', 'C', 20),
('2020-04-04', 'A', 25),('2020-04-04', 'A', 15),('2020-04-04', 'B', 10),('2020-04-04', 'C', 25),('2020-04-04', 'C', 25)
-- summarise and add a row number
SELECT project, dt, SUM(amount) as amount , ROW_NUMBER() OVER(PARTITION BY project ORDER BY dt) as RowN
into #x
FROM @t
GROUP BY project, dt
-- join #x to itself offseting by 1 row and calc diff vs previous amount
SELECT
cur.*
, cur.amount - ISNULL(prv.amount, cur.amount) as diff -- if there is no previous amount compare to current amount to difference is zero
FROM #x cur
LEFT JOIN #x prv
ON cur.project = prv.project
and cur.RowN = prv.RowN + 1
Это дает нам следующие результаты ...
Теперь все, что нам нужно сделать, это использовать в нашей матрице и установите для свойства BackgroundColor
текстового поля что-то вроде
=IIF(Fields!diff.Value = 0, Nothing, "#ff8c8c")
Это даст нам это в качестве окончательного результата.