1

SAGE データベースに基づく次のクエリで、MS Access に問題があるようです

次のコードは機能しません - 「好きではない」部分が好きではありません

SELECT tran_number, Inv_ref, Details, date, Net_amount, amount_paid
FROM AUDIT_HEADER

WHERE type = 'BP' and 
deleted_flag= 0 and details NOT like "*WAGES*"

このコードは機能しますが、非常に遅く、Excel にリンクすると機能しません -

期待されるパラメータ = 1 エラー??

SELECT tran_number, Inv_ref, Details, date, Net_amount, amount_paid
FROM AUDIT_HEADER

WHERE type = 'BP' AND deleted_flag= 0 and 
details NOT IN (SELECT details from audit_header where details like "*WAGES*");

また、奇妙なことに、このコードは機能しますが、明らかに、詳細に WAGES を含むトランザクションを除外したい

SELECT tran_number, Inv_ref, Details, date, Net_amount, amount_paid
FROM AUDIT_HEADER

WHERE type = 'BP' and 
deleted_flag= 0 and details like "*WAGES*"
4

3 に答える 3

0

ユーザーにはエラーも表示されます。

ODBC Call Failed - Syntax - Invalid filter in WHERE clause (#0)

ODBC 呼び出しを使用していて、Access から Access 以外の DB を呼び出している場合は、呼び出している DB に対して SQL が有効であることを確認する必要があります。したがって、SQL サーバーを使用している場合は、次を使用します。

SELECT tran_number, Inv_ref, Details, date, Net_amount, amount_paid
FROM AUDIT_HEADER WHERE type = 'BP' and deleted_flag= 0 and details NOT LIKE '%WAGES%'

SQL は二重引用符ではなく単一引用符を使用するためです。'BP' を一重引用符で囲み、"*WAGE*" を二重引用符で囲んでいるため、この引用符はチェックする価値があるかもしれません。また、ワイルド カードはパーセント記号です。使用している DB に対してこれを確認することをお勧めします。

于 2015-12-03T14:49:50.550 に答える