2016-08-12 8 views
1

IIF私は、次のクエリを実行するために、ExcelでのMSクエリを使用しています:MSクエリエクセル式の構文エラー

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

私は列、egchidが含まれているtabel、fgledgを、持っています。特定のバウチャー(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 

列のみ値GCAJA0が含まれている場合、私は、列egchidがGCAJA0とfalse以外の値が含まれている場合は、私のクエリはTrueを返すしたいと思い、しかし、私はどのように構文を書くに関係なく、エラーメッセージが表示され続けます。それは少なくとも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ある - >なし「」あなたが試すことができそうで :あなたはcompleatelyスペルについて正しい

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

こんにちはダニエル、 は、しかし、私は、同じエラーメッセージが出ていません。 CASE WHEN関数は、MS Query Excelではサポートされていません。だから私はそれを使うことができない。 – Lily

+0

'あなたは、一般的に、文字列のために><使用したくない(EGCHIDは「GCAJA0'、FALSE、TRUEを含みます)IFFを選択'試してみてください。それ以外の場合は、文字列が正確であることがわかっている場合は 'EGCHID LIKE 'GCAJA0''を使用します。 –

+0

動作しませんでした。私は両方を試しました(CONTAINSとLIKE)。私が、私はちょうどWinSQLをダウンロードするつもりだと思いますし、オプション。 とにかく感謝CASEを行う... :( を任意の条件を受け入れないことのように思える!:) – Lily

関連する問題