Не можете ли вы упростить свой запрос до чего-то подобного ...
SELECT DISTINCT
[Id], [CollectedDate],
Id1 = MAX([DataValue]) OVER(),
Id2 = MIN([DataValue]) OVER()
FROM
[dbo].[PollingStorage]
WHERE
DataSource IN (35,36,37,38)
AND (CollectedDate >= @prmStartDate OR @prmStartDate IS NULL)
AND (CollectedDate <= @prmEndDate OR @prmEndDate IS NULL)
AND (DataSource = @prmDataSource OR @prmDataSource IS NULL)
Это даст вам 4 столбца, Id1 и Id2 будут идентичны в каждой строке, поэтому в SSRS, если они используются в В совокупной области видимости вы можете задать выражение, например,
=FIRST(Fields!Id1.Value) - FIRST(Fields!Id2.Value)
Вы могли бы просто сделать все это в SQL, но, поскольку я не знаю, какие у вас требования, трудно сказать лучший подход.
Если это не поможет, опубликуйте образец данных и ожидаемый результат из образца, и вам будет легче ответить.