微软访问 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 周或更早的任何内容。
我一直在使用 not in 时遇到问题。它导致 Access 完全锁定。我不确定正确的语法应该是什么,我知道我可以用左外连接来编写它,但我不知道该怎么做。
数据
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。