Aller au contenu

Supprimer des doublons


vespa

Sujets conseillés

Bonjour,


Je n'arrives pas à bâtir une requête.. J'ai une table "items" qui comportent plusieurs champs : name, description, date... Certaines lignes sont en doubles c'est à dire même "name", même "description" seul la date change


Je dois supprimer tous les doublons en gardant le "name", "description" ayant la date la plus récente... J'ai passé mon dimanche sur ce SQL. Je précise que cette table est sur DB2 et que je n'ai aucun pouvoir dessus, je dois juste faire ce nettoyage. Merci d'avance pour votre aide.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,



DB2 ou non, cela ne change pas grand chose.




SELECT A.*
FROM Item a
Where Name + '' + Cast(Date as Varchar(20)) in (

Select Name + '' + Cast(Date as Varchar(20))
From item
Where Name = a.Name And Cast(Date as Varchar(20)) In (

Select Max(Date) from item
Where Name = a.Name
)

)

Cette requête va te retourner les items les plus récentes.




Portekoi


Lien vers le commentaire
Partager sur d’autres sites

Probablement quelque chose comme:


DELETE FROM table WHERE (name,description,date) IN (SELECT name,description,min(date) FROM table GROUP BY 1,2 HAVING count(*)>1)


Non?



Evidemment, fais une copie de ta table d'abord, et fais un SELECT à la place du DELETE dans un premier temps pour vérifier que ça supprime bien ce que tu veux.



Jacques.


Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...