删除重名的货品名,只保留一条

3970阅读 0评论2007-06-27 jtkk
分类:数据库开发技术

哥们儿叫我帮忙:有一excel文件要导入到MSDE中(速达软件),但总是报“品名”有重复,使用自带的工具每次只能发现一条处理一条,于是求助于我,下面是我主要的处理步骤:
(1)将excel数据导入到access的表中(不要使用链接表,此类表不支持delete);
用到的几个字段说明:
货品编码  int      唯一索引
品名     char(20)

(2)先将重复数据移动到临时表
select * into temptab
from sheet1
where 品名 in
(
SELECT t1.品名 FROM sheet1 t1
GROUP BY t1.品名 HAVING count(*)>1
);

(3)删除重复数据,只保留一条
delete from temptab
where 货品编码<( select max(货品编码) from temptab t1 where t1.品名=temptab.品名);

(4)删除原表中内所有重复数据
select * into temptab
from sheet1
where 品名 in
(
SELECT t1.品名 FROM sheet1 t1
GROUP BY t1.品名 HAVING count(*)>1
);

(5)将已经去除重复的记录插入到表中
insert into sheet1 select * from temptab;

(6)将sheet1表导出为excel文件

(7)完成

上一篇:《卧春》-《我蠢》
下一篇:发现GDI+的一个BUG