2017-05-18 9 views
0

私はtable2(DW_ECC_SAP_EBAN)に見つからないレコードをすべて削除しようとしているtable1(PR_NOTES)を持っています。私はいくつかの方法を試してみたし、このコードは私が欲しいものを得ていること(少なくともエラーが表示されていない)最も近い:AccessでSQLクエリを削除すると、期待通りに機能しない

DELETE * 
FROM PR_NOTES 
WHERE NOT EXISTS (SELECT 
DW_ECC_SAP_EBAN.BANFN, 
DW_ECC_SAP_EBAN.EKGRP, 
DW_ECC_SAP_EBAN.FRGZU, 
DW_ECC_SAP_EBAN.MENGE, 
DW_ECC_SAP_EBAN.BSMNG, 
DW_ECC_SAP_EBAN.LOEKZ, 
DW_ECC_SAP_EBAN.EBAKZ, 
DW_ECC_SAP_EBAN.PSTYP 

FROM (DW_ECC_SAP_EBAN 
LEFT JOIN PR_NOTES 
ON DW_ECC_SAP_EBAN.BANFN = PR_NOTES.BANFN)); 

このコードをテストするために、私は私が知っている偽のレコードを作成しました表2に見つからない: enter image description here

問題は、レコードがこれまでに削除されていないです:enter image description here

はあなたの助けのために事前にありがとうございます。

+0

エラー括弧のhier ?! '(DW_ECC_SAP_EBAN左からPR_NOTES'を登録しよう –

+0

... DW_ECC_SAP_EBAN.BANFN = PR_NOTES.BANFN ON PR_NOTES を登録しようDW_ECC_SAP_EBAN左から(それらを取り出して)残念ながら違いはありませんでした – Pucho

+0

が違いを作る、まだすべきではありません。。。 - ) –

答えて

1

これは私のやり方です。

DELETE FROM PR_NOTES 
WHERE PR_NOTES.BANFN NOT IN (SELECT DW_ECC_SAP_EBAN.BANFN FROM DW_ECC_SAP_EBAN) 

私はDW_ECC_SAP_EBANからBANFNのすべてを選択していると私は、リストにないレコードを削除するPR_NOTESを言っています。したがって、PR_NOTES.BANFNDW_ECC_SAP_EBAN.BANFNにない場合は、それは削除されますPR_NOTES

+0

このクエリでは、 "'AggregateType'は有効な名前ではありません。無効な文字や句読記号が含まれていないこと、また長すぎないことを確認してください。私はAccess SQLで作業しています。 – Pucho

+0

NVM、それは動作します。私は最初から新しいクエリを作成しました。何らかの理由でアクセスすると、バックグラウンドで何らかの種類のロジックが保持され、それらを変更した場合にクエリが壊れることがあります。 – Pucho

+1

@Puchoアクセスは、種類の1つです。 – RBCunhaDesign

関連する問題