我有一个数据库,其中包含一些客户的多条记录,其地址更改数据库会添加新记录,相同的客户ID号,但新的“ADDCDE”具有更高的索引号。
e.g。
NAME UNIQUEID ADDCDE ADDRESS
Customer A ID123 Z1 Address1 Town1 City1
Customer A ID123 Z2 Address2 Town2 City2
Customer A ID123 Z3 Address3 Town3 City3
Customer B ID1234 Z1 Address1 Town1 City1
Customer C ID12345 Z1 Address1 Town1 City1
Customer C ID12345 Z2 Address2 Town2 City2
我已经能够使用查询向导识别所有重复记录, 但我真正想做的是删除所有但ADDCDE的“最大”记录,所以在这种情况下从上述记录中删除以留下以下内容。
NAME UNIQUEID ADDCDE ADDRESS
Customer A ID123 Z3 Address3 Town3 City3
Customer B ID1234 Z1 Address1 Town1 City1
Customer C ID12345 Z2 Address2 Town2 City2
我是SQL的新手,我主要使用Access Query设计构建器但是如果有人能以某种方式回答这个问题(因为我需要经常这样做),我会弄清楚如何以及在哪里放置它并使它成为工作!
答案 0 :(得分:0)
您可以使用相关子查询删除除最新地址代码之外的所有地址代码:
delete from t
where t.addcde < (select max(t2.addcde) from t t2 where t2.uniqueid = t.uniqueid);