SSRS - выражение с использованием различных полей набора данных - PullRequest
10 голосов
/ 13 марта 2012

У меня есть отчет с несколькими наборами данных. В разных местах отчета используются разные поля из разных наборов данных.

В одной части отчета мне нужно сделать расчет, используя поля из двух разных наборов данных. Возможно ли это в выражении?
Можно ли как-то ссылаться на набор данных, в котором находится поле, в выражении?

Например, я хотел бы сделать что-то вроде этого:

=Fields.Dataset1.Field / Fields.Dataset2.Field

Ответы [ 3 ]

17 голосов
/ 13 марта 2012

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

=First(Fields!fieldName_A.Value, "Dataset1") / First(Fields!fieldName_B.Value, "Dataset2")

Если предположить, что A равно 10, а B равно 2, и они имеют числовой тип, то у вас будет результат 5 при отображении отчета.

Когда вы находитесь в построителе выражений, вы можете выбрать Category: Datasets, ваш желаемый набор данных будет выделен в Item: и затем дважды щелкните нужное поле в Value: и он появится в строке вашего выражения с добавленной областью действия.

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

=First(Fields!fieldName_A.Value, "Dataset1") & “ “ & First(Fields!fieldName_B.Value, "Dataset2")
3 голосов
/ 13 марта 2012

Как пишет PerPlexSystem, если вы хотите сравнить только первое значение из набора данных со значениями из другого набора данных, вы можете использовать функцию First.

Однако, если вы хотите сравнить значения каждой строкииз одного набора данных со значениями из каждой строки другого набора данных, вам нужно будет использовать подотчет - см. здесь для получения дополнительной информации.

0 голосов
/ 01 мая 2013

Другой вариант - использовать параметр в качестве переменной. Это полезно, если вы хотите создать вычисляемое поле в одном из наборов данных. Это лучше всего применять, когда значение параметра поступает из набора данных с одной записью.

...