SQL server: classer/supprimer des doublons

J’ai donc une table du genre:

Compagnie,code,date
10,1,01.01.2006
10,1,01.01.2007
10,1,01.01.2008
10,2,01.01.2007
20,1,01.01.2007
20,1,01.01.2008

Et je souhaiterais supprimer les doublons compagnie/code mais en gardant le ligne la plus vieille.
Dans mon exemple je supprimerais donc les lignes suivantes:
10,1,01.01.2007
10,1,01.01.2008
20,1,01.01.2007

Une idée comment faire?

Avec une sous-requête effectuant un WHERE COUNT(Id) > 1 ?

Une telle requête de donnerait uniquement les compagnie/code en doublon, or je ne doit pas tous les supprimer.

select compagnie, code, min(date), count(*) theCount from matable
group by compagnie, code
having theCount >1

Ca doit déjà te rapprocher

Encore un peu de code à tester ^^
La table Comp c’est ta table principale.

[code]create table #temp (compagnie int,
code int,
date datetime)

insert into #temp (compagnie, code, date)
select compagnie, code, min(date) from Comp
group by compagnie, code

delete from Comp
where date <> (select t.date from #temp t where Comp.compagnie = t.compagnie and Comp.code = t.code)[/code]

En sortie j’obtiens ça :

10 1 2006-01-01 00:00:00.000
10 2 2007-01-01 00:00:00.000
20 1 2007-01-01 00:00:00.000

Ca y est, j’ai trouvé la requête.

DELETE tableT FROM tableT INNER JOIN (SELECT compagnie a,code b,MIN(date) c,COUNT(*) d FROM tableT WHERE GROUP BY compagnie,code HAVING COUNT(*)>1) AS result ON compagnie=a AND code=b AND date<>c
Merci à girafologue de m’avoir mis sur la voie