2015-03-17 3 views
0

У меня есть набор данных, который я пытаюсь заставить все> 12 месяцев назад в одну группу. Я пытаюсь сделать это с помощью случая SQL, когда он назначает все месяцы и год> 12 месяцев назад значение int 0, но когда я пытаюсь поместить его в SSRS, он не работает.SSRS-Проблема с iif, содержащая функцию месяца,

Я пытался использовать эту формулу, но она не работает, если я не удалю функцию «MonthName». = IIF (Fields! ASGN_SUB_DUE_MONTH.Value> 0, MonthName (Fields! ASGN_SUB_DUE_MONTH.Value) & "" & Fields! ASGN_SUB_DUE_YEAR.Value
, "Больше, чем 12 месяцев назад")

Но эта формула работает = IIF (Fields! ASGN_SUB_DUE_MONTH.Value> 0, MonthName (IIF (Fields! ASGN_SUB_DUE_MONTH.Value> 0 и поля! ASGN_SUB_DUE_MONTH.Value < 13, Поля! ASGN_SUB_DUE_MONTH.Value, 1)) & "" & Fields! ASGN_SUB_DUE_YEAR.Value
, "Более 12 месяцев назад")

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

Заранее спасибо

+0

У вас возникли проблемы с получением набора данных для работы? Я могу дать вам несколько указателей на этот оператор TSQL CASE, если вы публикуете то, что вы пробовали. –

+0

Это Сонни, проблема не в том, как написан CASE, только с выходом. Наличие значений int не 1-12 вызывало проблемы. –

+0

Вы сказали, что пытаетесь сделать это с помощью инструкции SQL 'CASE'. Почему бы вам не добавить этот оператор case обратно в свой SQL-запрос в своем наборе данных? Во многих случаях легче манипулировать данными в самом наборе данных. К счастью, у вас может быть столько наборов данных, сколько вам нужно, чтобы сделать свой отчет. –

ответ

0

Этот вопрос связан с моим сазе и как IIF процессы в SSRS, из моего последующего исследования. Истинное утверждение нуждается в вложенном iif, потому что он оценивает все записи по всем частям выражения, поэтому даже когда у меня есть значения «Month» -1 или 0, которые не попадут в iif-часть с MONTHNAME(), он все еще оценивает это и вызывает ошибку.

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