首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

删除数据库中重复数据的有关问题

2012-12-16 
删除数据库中重复数据的问题有这样一个数据表TEST,共三个字段:ID(自增长)、员工编号、打卡时间。现需要做一个

删除数据库中重复数据的问题
有这样一个数据表TEST,共三个字段:ID(自增长)、员工编号、打卡时间。
现需要做一个存储过程,查找该表中重复的(员工编号+打卡时间)记录,如有则删除。(员工编号和对应的打卡时间都重复才算重复)

请教应该怎样写。谢谢!


[最优解释]

create proc P_del
as
begin
delete from TEST where not ID in (select min(ID) from TEST group by 员工编号,打卡时间)
end

[其他解释]
试试:
select * into #t from test a
where exists (select 1 from 
(select 员工编号,打卡时间
from test 
group by 员工编号,打卡时间
having count(1)>1) b where a.员工编号=b.员工编号 and a.打卡时间=b.打卡时间)
go
delete from test where id in (select id from #t)
go
insert into test
select min(id),员工编号,打卡时间
from #t
group by 员工编号,打卡时间

[其他解释]
delete from TEST where exists(select 1 from TEST t where t.员工编号=TEST.员工编号 and t.打卡时间 =TEST.打卡时间 and t.ID<TEST.ID)
 

[其他解释]
没有积份啊,,怎么办
[其他解释]
我用的是临时表方式。。。

热点排行