MS アクセス SQL
DELETE *
FROM Lane_Details
WHERE Lane_Details.Week not in(SELECT DISTINCT TOP 3 Lane_Details.Week
FROM Lane_Details
WHERE Lane_Details.Week IS NOT NULL
ORDER BY Week DESC; )
望ましい結果
私がこれを行う必要があるのは、テーブルから 4 週間以上経過したものをすべて削除することです。
アクセスが完全にロックされてしまいます。これの正しい構文がどうあるべきかわかりません。また、左外部結合を使用して記述できることはわかっていますが、その方法がわかりません。
データ
ID Lane Time Week
6213214 83198524 4/6/2012 12:31:00 AM 201315
6213183 61780698 4/6/2012 12:31:00 AM 201311
6213201 11145552 4/6/2012 12:31:00 AM 201315
6213202 82391025 4/6/2012 12:31:00 AM 201314
6213203 11149012 4/6/2012 12:31:00 AM 201311
6213204 11140048 4/6/2012 12:31:00 AM 201311
6213205 83198524 4/6/2012 12:31:00 AM 201316
6213207 61625652 4/6/2012 12:31:00 AM 201316
6213210 61625652 4/6/2012 12:31:00 AM 201311
6637195 36166433 5/1/2012 8:25:00 AM 201314
6637206 77222091 5/1/2012 10:50:00 AM 201314
このデータを使用して、週 201311 を含むすべての行を削除します。201314、201315、および 201316 を保持します。
サブクエリはこのテーブルで実行され、この場合は上位 3 つの日付 (14、15、16) を取得します。次に、「参加しない」と言って、11 をすべて削除します。