IIF при использовании схожих критериев

Это 2 разных статуса работы, которые я хочу отображать одинаково, мой оператор IIF изменяет отображение, НО я хотел бы, чтобы для обоих возвращалась только одна запись. Например, я хочу, чтобы это отображалось так

JobStatus
---------
Inactive
Let Go

Но возвращаемый набор результатов, который я получаю,

JobStatus
---------
Active
Inactive
Let Go
Let Go

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

jobstatus1: IIf([jobstatus]="Terminated","Let Go",IIf([jobstatus]="Fired","Let Go",[jobstatus]))

РЕДАКТИРОВАТЬ - Полный синтаксис. Оператор IIF, который мне нужно использовать, предназначен для строки alpha.jobstatus сразу после Select.

SELECT alpha.jobstatus, Count(beta.ID) AS CountOfID
FROM alpha LEFT JOIN beta ON alpha.jobstatus = beta.jobstatus
GROUP BY alpha.jobstatus, alpha.order
HAVING (((alpha.jobstatus) Not In (Select [jobstatus] From tbl_Valid)))
ORDER BY alpha.order;

person Rashid Abib    schedule 23.08.2015    source источник


Ответы (1)


Используйте SELECT DISTINCT для возврата только различных значений.

Также вы можете использовать более простое выражение для этого вычисляемого поля --- с одним IIf вместо вложенных IIf. Переключите свой запрос в представление SQL и измените начало текста инструкции на это...

SELECT DISTINCT IIf([jobstatus] IN ('Terminated', 'Fired'), 'Let Go', [jobstatus]) AS jobstatus1
person HansUp    schedule 23.08.2015
comment
Я получаю сообщение об ошибке: Вы пытались выполнить запрос, который не включает указанное выражение как часть агрегатной функции. - person Rashid Abib; 23.08.2015
comment
мои извинения за это, я разместил полный синтаксис сейчас. - person Rashid Abib; 23.08.2015
comment
Хорошо, первый шаг: если вы пока проигнорируете HAVING и ORDER BY, будет ли этот запрос выполняться без ошибок и возвращать разумные данные? SELECT IIf(alpha.jobstatus IN ('Terminated', 'Fired'), 'Let Go', alpha.jobstatus) AS jobstatus1, alpha.order, Count(beta.ID) AS CountOfID FROM alpha LEFT JOIN beta ON alpha.jobstatus = beta.jobstatus GROUP BY IIf(alpha.jobstatus IN ('Terminated', 'Fired'), 'Let Go', alpha.jobstatus), alpha.order - person HansUp; 23.08.2015
comment
Большой! Я не понял вашего пункта HAVING. Надеюсь, это сработает: HAVING IIf(alpha.jobstatus IN ('Terminated', 'Fired'), 'Let Go', alpha.jobstatus) Not In (Select [jobstatus] From tbl_Valid) Если да, то все, что вам нужно сделать, это добавить ORDER BY, что должно быть просто в представлении «Дизайн». - person HansUp; 23.08.2015