2016-08-12 2 views
1

Я использую MS Query в Excel, чтобы выполнить следующий запрос:MS Query Excel IIF ошибка синтаксиса выражения

select 
iif(egachid <>'GCAJA0', True, False) 
from fgledg 
where egcono='1'and egdivi='D30'and egvono=51166554 

У меня есть Tabel, fgledg, который содержит столбец, egchid. Для конкретного ваучера (egvono = 51166554) Я получаю следующие строки:

EGCONO EGDIVI EGYEA4 EGVONO  EGCHID 
1   D30  2015 51166554 GCAJA0 
1   D30  2015 51166554 GCAJA0 
1   D30  2015 51166554 GCAJA0 
1   D30  2015 51166554 GCAJA0 
1   D30  2015 51166554 SEBSHHASP 
1   D30  2015 51166554 SEBSHHASP 
1   D30  2015 51166554 SEBSHHASP 

Я хотел мой запрос, возвращающий Правда, если столбец egchid содержит другие значения, чем GCAJA0 и ложно, если столбец содержит только значение GCAJA0, но я продолжаю получать сообщения об ошибках независимо от того, как я пишу синтаксис. Похоже, что он принимает функцию iif, но синтаксис неверен?

Я попытался diffrent варианты написания синтаксиса, но получить следующие сообщения об ошибках:

IIf(egachid <>'GCAJA0', True, False)  Token <> was not valid 
IIf(egachid = 'GCAJA0', False, True)  Token = was not valid 
IIf([egachid] <>'GCAJA0', True, False)  Token [ was not valid 
IIf([egachid] <>'GCAJA0', 'True', 'False') Token [ was not valid 

Что я делаю неправильно?

ответ

0

Проверьте правильность написания кода egachid. Имя столбца не EGCHID -> нет «А» Иначе вы можете попробовать:

SELECT CASE WHEN egachid CONTAINS 'GCAJA0' THEN False ELSE True END AS name 
+0

Привет Даниэль, Вы compleately правы по поводу орфографии, однако, я получаю то же сообщение об ошибке. Функция CASE WHEN не поддерживается MS Query Excel. Вот почему я не могу его использовать. – Lily

+0

Попробуйте 'SELECT IFF (EGCHID CONTAINS 'GCAJA0', False, True)' Обычно вы не хотите использовать <> для строк. В противном случае используйте 'EGCHID LIKE 'GCAJA0'', если вы уверены, что строка будет именно такой. –

+0

Не работает. Я попробовал оба (СОДЕРЖИТ И ЛЮБЛЮ). Кажется, что он не принимает никаких условий ... :( Я думаю, что я просто загружу WinSQL и сделаю опцию CASE WHEN. Спасибо в любом случае! :) – Lily