2016-08-12 62 views
1

我使用MS查询在Excel中执行以下查询:MS 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 

,我想我的查询返回true,如果列egchid含有比GCAJA0其他价值和虚假如果列只包含值GCAJA0,但无论我如何编写语法,都会收到错误消息。它似乎至少接受iif函数,但语法不正确?

我试图写语法的不同势的变化,但出现以下错误信息:

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 - “没有“A” 否则,您可以尝试:

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

丹尼尔嗨, 你compleately说得对拼写,但是,我得到同样的错误消息。 MS Excel Excel不支持CASE WHEN功能。这就是为什么我不能使用它。 – Lily

+0

尝试'选择IFF(EGCHID CONTAINS'GCAJA0',假,真)'您通常不希望使用<>作为字符串。否则,使用'EGCHID LIKE'GCAJA0'',如果你确定字符串正是那个。 –

+0

没有工作。我尝试了两种(CONTAINS和LIKE)。它似乎不接受任何条件... :( 我想我只是要下载的WinSQL,并做CASE当选项 谢谢反正!:) – Lily

相关问题