Добавление нескольких операторов IIF SSRS - PullRequest
1 голос
/ 15 января 2020

Я пытаюсь сложить несколько полей, ЕСЛИ базовое условие истинно.

Более конкретно, я хочу сложить вместе только поля, если они соответствуют или превышают параметр, заданный пользователем.

Я чувствую, что это самое близкое, что я приехала. Буду очень признателен за любую помощь! Спасибо

=IIF(Fields!TestA.Value >= Parameters!TestA.Value,Fields!TestA.Value,0)
+IIF(Fields!TestB.Value >= Parameters!TestB.Value,Fields!TestB.Value,0)
+IIF(Fields!TestC.Value >= Parameters!TestC.Value,Fields!TestC.Value,0)

Идея состоит в том, чтобы сначала проверить, больше ли поле равно или равно параметру, если оно большое, добавьте это к итогу, иначе просто добавьте 0 к итогу и переместите на.

Ответы [ 2 ]

1 голос
/ 15 января 2020

Если ваши поля или параметры текстовые / строковые, то вам может потребоваться преобразовать их в и в INT или в десятичное число с помощью INT () или CDE C (). В противном случае IIF может выполнять сравнение в виде строки, а не сравнения чисел (например, "2" > "100").

Попробуйте преобразовать ваши поля в INT:

=IIF(INT(Fields!TestA.Value) >= INT(Parameters!TestA.Value), Fields!TestA.Value, 0)
+IIF(INT(Fields!TestB.Value) >= INT(Parameters!TestB.Value), Fields!TestB.Value, 0)
+IIF(INT(Fields!TestC.Value) >= INT(Parameters!TestC.Value), Fields!TestC.Value, 0)
0 голосов
/ 15 января 2020

Если я правильно понимаю ваш вопрос, вы sh установите значение для поля A, поля B и поля C

, поэтому для поля A условие должно быть

=IIF(Fields!TestA.Value >= Parameters!TestA.Value,Fields!TestA.Value,0)

Для поля B это должно быть

=IIF(Fields!TestB.Value >= Parameters!TestB.Value,Fields!TestB.Value,0)

, аналогично, это относится к C.

Дайте мне знать, если я что-то упустил или вы хотите установить значение с проверкой нескольких условий для одно поле?

...