2012-06-18 3 views
1

Вот упрощенная версия того, что я пытаюсь сделать с помощью выражения.Больше, чем умноженное значение в выражении SSRS

если response_time > response goal, "цвет", но если response_time > response_goal * 0.25 "цвет # 2"

Может ли эта работа через выражение?

В избиении моей головы против сцены стены ...

ответ

1

Я бы уточнил это выражение у Ника, потому что первое условие оценило бы истину, даже если второе условие истинно. Также было бы легче читать, если вы используете функцию Switch. Так что попробовать что-то вроде этого:

=Switch(response_time > response_goal and response_time <= response_goal * 0.25,"colour", response_time > response_time * 0.25, "colour#2") 

UPDATE: Ник был прав в порядке операций - я введенная на более знаком, а не арифметической операции. Я все еще предпочитаю функцию переключения, но только, чтобы исправить запись - выражение должно выглядеть следующим образом:

=Switch(response_time > response_goal 0.25 and response_time <= response_goal ,"colour#2", response_time > response_time, "colour") 
+0

С умножением на 0,25 понизит число, не возможно, что первое условие в моем примере не будет будет выполнено, но второе условие будет? (Пример: Response_time = 3 и Response_Goal = 4) – NickHeidke

+0

Да, вы правы, извините - слишком рано утром для меня, по-видимому, правильно обработать. Мои извинения! Я отредактировал свой ответ. Я все еще думаю, что Switch - лучший способ справиться с несколькими условиями, а не с вложенными iif. – Stacia

+0

Я действительно не знал синтаксиса Switch, поэтому спасибо за демо! – NickHeidke

1

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

IIf(response_time > response_goal, "colour", IIf(response_time > (response_goal * 0.25), "colour#2","default option")) 

Вы хотели бы изменить «вариант по умолчанию» с тем, что выражение должно вернуться, если response_time не больше, чем response_goal или response_goal * 0,25.

Смежные вопросы