删除 Access SQL 查询中的重复行



我想创建一个用于删除重复行的 Access SQL 查询。

我的桌子:

CustID  EventDate   EventID
12  01.01.2019  1001
10  02.01.2019  1002
11  03.01.2019  1003
10  01.01.2019  1001
11  03.01.2019  1004

表没有主键。 我想删除每个重复的 CustID。 结果应该有一次每个 CustID 与

Prio 1. 最近的事件日期

Prio 2. 最大的事件ID

结果如下所示:

CustID  EventDate   EventID
12  01.01.2019  1001
10  02.01.2019  1002
11  03.01.2019  1004

我不想使用宏。

sql 语句在 Access 中的外观如何? 提前谢谢你。

假设最近的日期和最大的事件 ID 将始终位于同一记录中,请考虑:

查询 1:

SELECT Table1.CustID, Max([EventDate] & [eventID]) AS ID
FROM Table1
GROUP BY Table1.CustID;

查询2:

DELETE FROM Table1 WHERE Not CustID & EventDate & EventID IN (SELECT CustID & ID
FROM Query1);

您可以使用 EXISTS 应用删除条件:

DELETE FROM tablename AS t
WHERE EXISTS (
SELECT 1 FROM tablename
WHERE 
CustID = t.CustID 
AND 
(EventDate > t.EventDate OR (EventDate = t.EventDate AND EventID > t.EventID))
)

这将帮助您:

Select distinct * into ‪#‎tmpl‬ From MY_TABLE    
Delete from MY_TABLE    
Insert into MY_TABLE    
Select * from #tmpl
Drop table #tmpl 

在创建临时表时,如果抛出错误,则创建另一个真实表并执行相同的操作。

最新更新