如何将此 SELECT 语句转换为 DELETE 语句?

时间:2021-06-24 07:19:44

标签: sql ms-access sql-delete

我想删除所有具有特定 ID 和类别的记录,除了 MS Access 中具有最大日期的记录。

编辑: 这是我的数据的样子

<头>
id 类别 日期
1 1 2021 年 6 月 24 日
1 1 2021 年 6 月 20 日
1 2 2021 年 6 月 25 日
1 2 2021 年 6 月 26 日
2 1 2021 年 6 月 24 日
2 1 2021 年 6 月 26 日

这就是我希望我的数据的样子

<头>
id 类别 日期
1 1 2021 年 6 月 24 日
1 2 2021 年 6 月 26 日
2 1 2021 年 6 月 26 日

我有这个 SELECT 语句来显示我想保留的所有记录:

Select
    t1.*
From
    table t1
inner join
    (select max(date) as maxdate, id
     from table
     group by id) t2 on t1.id = t2.id 
                     and t1.date = t2.maxdate

我无法找出适用于 Access 的 Delete 语句。

1 个答案:

答案 0 :(得分:1)

您可以使用:

delete from t
   where t.date < (select max(t2.date)
                   from t as t2
                   where t2.id = t.id and t2.category = t.category
                  );
相关问题