私は抽出日の異なる以下のコーステーブルを持っています。SQL NOT IN MS ACCESS/VBAのクエリ
ID | Course | ExtractDate
10 | 100000 | 2017-02-28
10 | 100001 | 2017-01-31
10 | 100002 | 2016-12-31
10 | 100003 | 2016-11-30
私は、最新の3ヶ月からのレコードのみを維持するために、次のSQLスクリプトを実行する必要があり、それゆえ10003
Delete from [Course] where [ExtractDate] not in (select distinct top 3 [ExtractDate] from [Course] order by [ExtractDate] desc
は、VBAやMSアクセスがないように思えコースコードでレコードを削除します誰かがこれのための任意の回避策を持っています "ではない"機能をサポートしていますか?
ありがとうございます。
本当に最後の3か月ですか?より古い日付のレコードを削除することができます。それも速いでしょう。 dateadd関数を見てください(ヒント、マイナスの値は減算されます) – Hogan
Access SQLはうれしく 'NOT IN'をサポートしています。あなたの問題は、あなたが 'distinct'と' top'を一緒に使うことです。これはAccess SQLによるものです:https://msdn.microsoft.com/en-us/library/bb177882(v=office.12)。 aspx – cha
実際に私は前に2を試してみましたが、動作しません。 (1)削除する[Course] DateAdd( 'm'、3、ExtractDate) 3 –
user1688194