Заявление IIF MS ACCESS VBA SQL - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть 3 таблицы

ConnectivityFile, где у меня есть идентификаторы для некоторых свойств

CHAINDD, где у меня есть коды отелей (их можно повторить) для тех же свойств

Export где я хочу получить все коды отелей и их идентификаторы (объединение для предыдущих таблиц)

Я могу добиться этого с помощью запроса ниже

query2 = "SELECT ConnectivityFile.ID as [Hotel ID], ConnectivityFile.HotelCode  
FROM ConnectivityFile 
INNER JOIN (SELECT DISTINCT CHAINDD.HOTELCODE as [Hotel Code] from CHAINDD) as T 
ON ConnectivityFile.HotelCode = T.[Hotel Code]"

DoCmd.RunSQL "INSERT INTO Export " & query2

Теперь проблема, с которой я сталкиваюсь, заключается в том, что, скажем, код отеля из таблицы CHAINDD отсутствует в таблице ConnectivityFile.Я хотел бы указать это как «Не подключен» как идентификатор в таблице экспорта.

Как этого добиться?Я знаю, что есть заявление ИИФ, когда я сделал несколько проб и ошибок, но безуспешно.Где вы размещаете заявление IIf?

Большое спасибо за вашу помощь и время

1 Ответ

0 голосов
/ 11 декабря 2018

пока ваш запрос действительно работает, IIF работает примерно так:
query2 = "SELECT IIF (ISNULL (T.HOTELCODE)," "Not Connected" ", ConnectivityFile.ID) как [ID отеля], ConnectivityFile.HotelCode
ИЗ ConnectivityFile ВЛЕВО ПРИСОЕДИНЯЙТЕСЬ (ВЫБЕРИТЕ DISTINCT CHAINDD.HOTELCODE как [Код отеля] из CHAINDD) как T ON ConnectivityFile.HotelCode = T. [Код отеля] "

в основном, если кодтам, используйте его, в противном случае поместите строку, оставшуюся "Не подключен"
Обратите внимание, что поле кода отеля в Export должно быть способно обрабатывать НЕ уникальные данные, т.е. не быть первичным ключом.

...