Можно ли использовать SQL-запрос в логической проверке оператора IIF? У меня есть штатное расписание, в котором содержится вся ожидаемая общая информация о персонале. Одно из полей IsManager
является логическим, и я использую операторы IIF для изменения вывода запроса в зависимости от того, установлено ли у кого-то значение true или нет.
Проблема, с которой я сталкиваюсь, заключается в том, что когда я применяю это к таблице «один ко многим», она проверяет, имеет ли текущая запись значение поля IsManager, равное истине. Я хотел бы, чтобы он проверил, установлено ли у текущего человека, выполняющего запрос, значение поля true.
SELECT TB2.ID, IIF(TB1.IsManager, TB1.LastName, 'Restricted'), IIF(TB1.IsManager, TB1.FirstName, 'Restricted')
FROM TB1 INNER JOIN TB2 ON TB1.EmployeeNumber = TB2.EmployeeNumber
Это работает, если в проверяемой мной записи есть IsManager=True
. Я хотел бы проверить текущего пользователя на наличие оператора IIF, который я делаю в других запросах, используя следующие
SELECT IsManager
FROM TB1
WHERE Username=currentUser
Где currentUser
- это переменная VBA Environ("USERNAME")
, которая также записывается в таблице сведений о персонале.
Итак, могу ли я объединить их и выполнить IFF с указанным выше запросом, например:
SELECT IIF(SELECT IsManager
FROM TB1
WHERE Username=currentuser, TB1.LastName, 'Restricted') FROM .... etc etc
Если нет, есть альтернативный метод, который я могу использовать, доступный для MC Access SQL.