Использование нескольких операторов IIF в выражении SQL в построителе отчетов SQL - PullRequest
0 голосов
/ 19 марта 2019

Я добавляю новый столбец в существующий отчет с именем Refund Due. В этом столбце я пишу выражение для следующей логики:

  1. Если incurred > 0, заполните столбец возврата средств с No

  2. Если incurred =< 0 and status = "closed", заполните столбец возврата Yes

  3. Если incurred =< 0 and status does not equal "closed", заполните столбец возврата "Refer"

Я написал следующее выражение

=IIF (Fields!GROSS_CLAIMS_INCURRED.Value>"0", "No", IIF(Fields!GROSS_CLAIMS_INCURRED.Value<="0" AND Fields!STATUS.Value="Closed", "Yes", IIF(Fields!GROSS_CLAIMS_INCURRED.Value<="0" AND Fields!STATUS.Value="Open", "Refer", IIF(Fields!GROSS_CLAIMS_INCURRED.Value<="0" AND Fields!STATUS.Value="Reopen", "Refer"))

Но при предварительном просмотре отчета появляется следующее сообщение об ошибке:

Выражение Value для textrun ‘Textbox154.Paragraphs [0] .TextRuns [0]’ содержит ошибку: [BC30516] Не удалось разрешить перегрузку, потому что ни один доступный «IIf» не принимает это количество аргументов.

Как я могу исправить эту проблему или какое выражение я должен использовать, чтобы получить требуемые результаты?

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 19 марта 2019

SWITCH - намного более чистый способ множественных условных выражений, чем вложенные IIF операторы:

=SWITCH(Fields!GROSS_CLAIMS_INCURRED.Value>"0", "No",
Fields!GROSS_CLAIMS_INCURRED.Value<="0" AND Fields!STATUS.Value="Closed", "Yes",
Fields!GROSS_CLAIMS_INCURRED.Value<="0" AND Fields!STATUS.Value="Open", "Refer",
Fields!GROSS_CLAIMS_INCURRED.Value<="0" AND Fields!STATUS.Value="Reopen", "Refer"
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...