2016-03-25 7 views
0

こんにちは私はいくつかのレコードを取得するためにカーソルをpowerbuilder 12に書き込もうとしています。ここは私の質問です。 trninvhdrテーブルから2番目のテーブルにないレコードを取得しようとしています。mysql 5.5.25で使用する正しい構文が存在しないため

SELECT 
INV_DATE, 
INV_NO, 
INV_TYPE, 
CUR_CODE, 
EXCH_RATE, 
usd_rate, 
CR_TERM, 
DUE_DATE, 
bl_date, 
TOT_AMT 
FROM trninvhdr 
WHERE 
COMP_CODE ='NFL1' AND 
CUST_CODE = 'NLML' AND 
INV_TYPE ='F' AND 
INV_DATE <= '2016-03-25' AND 
NOT EXISTS 
(SELECT * FROM trninvoiceavailability WHERE trninvoiceavailability.COMP_CODE = trninvhdr.COMP_CODE 
AND trninvoiceavailability.INV_TYPE = trninvhdr.INV_TYPE AND trninvoiceavailability.INV_NO = trninvhdr.INV_NO); 

ここではどのようにプログラムで使用しますか。

DECLARE lc_retrieve CURSOR FOR 

SELECT 
trninvhdr.INV_DATE, 
trninvhdr.INV_NO, 
trninvhdr.INV_TYPE, 
trninvhdr.CUR_CODE, 
trninvhdr.EXCH_RATE, 
trninvhdr.usd_rate, 
trninvhdr.CR_TERM, 
trninvhdr.DUE_DATE, 
trninvhdr.bl_date, 
trninvhdr.TOT_AMT 
FROM trninvhdr 
WHERE 
COMP_CODE = :as_comp_code AND 
CUST_CODE = :as_cust_code AND 
INV_TYPE ='F' AND 
INV_DATE <= :as_inv_date)AND 
NOT EXISTS (SELECT * FROM trninvoiceavailability 
WHERE trninvoiceavailability.COMP_CODE = trninvhdr.COMP_CODE 
AND trninvoiceavailability.INV_TYPE = trninvhdr.INV_TYPE AND 
trninvoiceavailability.INV_NO = trninvhdr.INV_NO); 

    open lc_retrieve ; 

クエリはmysqlサーバーで正常に動作しますが、prograでは次のエラーが表示されます。

データベースc0038 SQLSTATE = 3700 MySQL ODBC 5.2 aドライバmysql id 5.5.25構文に誤りがあります。あなたのmysqlバージョンに対応するマニュアルをチェックして正しい構文がNOT EXISTS(SELECT * FROM trninvoiceavailability ... 1行目)の近くで使用できることを確認してください。

このクエリを動作させるのに使う正しい構文は何ですか?

あたりbelow-

INV_DATE <= :as_inv_date)AND 

としてクエリから削除する必要が

答えて

1

ことsholuld私はどこから来たのと、それは友人場所ですされています...このコードでブラケットを見ることができます?

INV_DATE <= :as_inv_date)AND 
+0

ねえ、私はそれを逃した。それを指摘してくれてありがとう。あなたは私の一日を救った。 – chathwind

+0

私の喜び。それは新構文ですが、それを抱きしめていたので、それを見るのにはしばらく時間がかかりました。 – Harry

1

INV_DATE <= :as_inv_date AND

+0

はい、問題でした。多くのありがとう。 – chathwind