2016-11-10 6 views
-2

Я пытаюсь объединить следующие инструкции IIF в SSRS и не может казаться, что код корректен для запуска. Может ли кто-нибудь помочь?Сочетание инструкций IIF в ssrs

= IIF (IsNothing (Поля Description.Value)! И поля! CallFlag.Value = "1", "Новый рекорд для набора", Поля! Description.Value, Iif (IsNothing (Fields! Description.Value) и поля! CallFlag.Value = "0", "Do not Call", Fields! Description.Value, Iif (IsNothing (Fields! Description.Value) и isnothing (поля! CallFlag.Value), «Load Reject», Fields ! Description.Value)

+0

У вас есть 3 КИРП , Синтаксис должен выглядеть примерно как IIF (логическое, TRUE-значение, False-значение). У вас есть IIF (логическое, TRUE-значение, FALSE-значение, IIF ...) Что вы хотите со вторым и третьим iif? – Johanness

+0

Просто попытка форматирования кода указывает на проблему. 'IIF' принимает 3 аргумента (условие, истинный результат и ложный результат), вы пытаетесь передать более трех аргументов. Неясно, чего вы пытаетесь достичь. – Jamiec

+0

Привет, извините за любую путаницу, у меня есть столбец с пустыми значениями null от SQL. Я хочу заполнить поле описания определенным текстом, зависящим от полей! CallFlag.Value = «0», если его 1 затем заполнить пробел «Не звоните» или если он = 1, то заполните его «Новая запись в набор « – Welldonebacon

ответ

1

Оператор IIF читает IIF (логическое, TRUE-значение, FALSE-значение). В вашем случае вы имеете в виду: if callflag = 1, затем «New Record» else if callflag = 2 then ... ....

Это привело бы к:

=Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "1" , 
    "New Record to Dial", 
    Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "0" , 
    "Do Not Call", 
    Iif(IsNothing(Fields!Description.Value) and isnothing(fields!CallFlag.Value), 
     "Load Reject", 
     Fields!Description.Value 
    ) 
) 
) 

Если вы перенастроить, что вы получите:

=Iif(IsNothing(Fields!Description.Value) and fields!CallFlag.Value = "1" , 
    "New Record to Dial", 
    Iif(IsNothing(Fields!Description.Value) 
    iif(isnothing(fields!CallFlag.Value), "Load Reject", 
     Iif(fields!CallFlag.Value = "0" , "Do Not Call", 
     Iif(fields!CallFlag.Value = "1" , "New Record to Dial", "Error on CallFlag Value") 
    ) 
    ) 
, Fields!Description.Value) 

Или еще лучше: если вы используете SQL-сервер как тег указывает, использовать команду CASE, ... CASE command in SQL

+0

работал идеально! Спасибо – Welldonebacon

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