Sql 如何删除access表中除最近记录以外的所有记录

Sql 如何删除access表中除最近记录以外的所有记录,sql,ms-access,Sql,Ms Access,我有一张像这样的桌子: name - log - date - dataFields john - 2 - 21/03/2014 - 123 john - 2 - 22/03/2014 - 345 john - 2 - 23/03/2014 - 234 karl - 2 - 20/03/2014 - 789 liam - 1 - 20/03/2014 - 135 l

我有一张像这样的桌子:

name - log - date - dataFields john - 2 - 21/03/2014 - 123 john - 2 - 22/03/2014 - 345 john - 2 - 23/03/2014 - 234 karl - 2 - 20/03/2014 - 789 liam - 1 - 20/03/2014 - 135 liam - 2 - 21/03/2014 - 321 mick - 1 - 20/03/2014 - 987 mick - 1 - 21/03/2014 - 123 mick - 2 - 22/03/2014 - 456 mick - 3 - 20/03/2014 - 789 mick - 3 - 24/03/2014 - 456 名称-日志-日期-数据字段 john-2-21/03/2014-123 约翰-2-22/03/2014-345 john-2-23/03/2014-234 卡尔-2-20/03/2014-789 liam-1-20/03/2014-135 liam-2-21/03/2014-321 mick-1-20/03/2014-987 mick-1-21/03/2014-123 mick-2-22/03/2014-456 mick-3-20/03/2014-789 mick-3-24/03/2014-456 我想删除除最新名称/日志组合之外的所有记录。在这个例子中,我只剩下

john - 2 - 23/03/2014 - 234 karl - 2 - 20/03/2014 - 789 liam - 1 - 20/03/2014 - 135 liam - 2 - 21/03/2014 - 321 mick - 1 - 21/03/2014 - 123 mick - 2 - 22/03/2014 - 456 mick - 3 - 24/03/2014 - 456 john-2-23/03/2014-234 卡尔-2-20/03/2014-789 liam-1-20/03/2014-135 liam-2-21/03/2014-321 mick-1-21/03/2014-123 mick-2-22/03/2014-456 mick-3-24/03/2014-456
我尝试使用一个子查询来选择我想要保留的记录。然后使用not exists选择要删除的记录,但它不选择任何记录。我可以用这种方式使用not exists吗?

谢谢Alexander,但是创建表不起作用。因此,我所做的是创建一个子查询,返回每个名称/日志组的最大日期。然后在另一个查询中使用此子查询,该查询在原始表的name/log/date上具有左连接。只需从名称为null的原始表中删除记录(即在子查询中找不到具有相同名称/log/date的匹配记录,因为那里有一个更晚的记录)

不会:

Delete from [TableName] as T1
Where Exists(
SELECT [log],[name],Max([date]) FROM [TableName] 
Where [log] = T1.[log]
And [name] = T1.[name]
Group By [log],[name]
Having T1.[date] < Max([date]))
从[TableName]中删除为T1
哪里有(
从[TableName]中选择[log]、[name]、Max([date])
其中[log]=T1。[log]
和[名称]=T1。[名称]
分组依据[日志],[名称]
具有T1.【日期】

做这个把戏吗?

这里没有任何id列?否-没有唯一id-键是name/log/date说“查询必须至少有一个目标字段”?选择*可能是问题所在,请尝试编辑后的答案