从一个数据库备份我已经记录无独特标识。

一些记录具有独特的标识。一些记录与重复Id包含不同的DateCreated值。一些记录与重复Id包含相同的DateCreated值。

我试图获得一个数据库,2005年的查询将只留下唯一的ID值与最近DateCreated值。

ID|    DateCreated  
1 |    1/1/09
2 |    1/2/09
2 |    2/2/09
3 |    1/3/09
3 |    1/3/09

ID|    DateCreated  
1 |    1/1/09
2 |    2/2/09
3 |    1/3/09

帮助

有帮助吗?

解决方案

DELETE FROM myTable AS t1 
WHERE EXISTS (
    SELECT 1 FROM myTable AS t2 
    WHERE t1.ID=t2.ID AND t1.DateCreated<t2.DateCreated)

即删除任何行,那里是另一个列有相同编号和以后建立的日期。

其他提示

create table #t ( id int, date datetime )

insert #t 
values(1, getdate())

insert #t 
values(1, getdate()+1)

insert #t 
values(1, getdate()-1)

insert #t 
values(2, getdate())

insert #t 
values(2, getdate()+1)

delete t 
from #t t
left join (select id, min(date) as date from #t group by id) as t1 
    on t.id = t1.id and t1.date = t.date
where t1.date is null
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top