Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2046 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Suppresion des doublons d'une base de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppresion des doublons d'une base de données

n°1808839
bossamiral​2
Ctrl+Alt+Del
Posté le 06-11-2008 à 08:50:45  profilanswer
 

Voilà  mon soucis je dois faire un tri dans un table d'une base de donnée qui possède x champs.
 
Je me retrouve avec des doublons .
 
Exemple Table : Nom de la table Fruit  (base de donnée access)
 
Article     Quantité    Numero_de _produit
Pomme     3              123345
Poire        10            125369
Pomme     67            146983
 
Le but étant de supprimé uniquement l'article pomme avec le plus petit Numero_de_produit.
 
Il y a un moyen avec l'instruction update ou je dois passer par une table temporaire ???
 
ou avec select distinct


Message édité par bossamiral2 le 06-11-2008 à 09:10:16
mood
Publicité
Posté le 06-11-2008 à 08:50:45  profilanswer
 

n°1808862
MagicBuzz
Posté le 06-11-2008 à 10:25:22  profilanswer
 

avec update, je dirais que tu vas avoir du mal à supprimer des lignes.
avec delete, oui, tu pourras sans problème faire la requête, elle sera juste assez complexe.
 
et non, pas de distinct. tu auras besoin de not exists, max() et group by


Message édité par MagicBuzz le 06-11-2008 à 10:25:33
n°1808930
grosbin
OR die;
Posté le 06-11-2008 à 11:50:55  profilanswer
 

Tu additionnerais les quantités des deux pommes, tu update le Pomme avec le plus petit NumProduit ( arbitrairement ) puis supprimerait le plus gros
la clause group by te permet en premier lieu d'isoler tes doublons


---------------
Photos Panoramiques Montagnes Haute Savoie
n°1808944
MagicBuzz
Posté le 06-11-2008 à 12:13:53  profilanswer
 

ah parcequ'il faut mettre à jour la quantité avant de delete ?

n°1808951
MagicBuzz
Posté le 06-11-2008 à 12:18:19  profilanswer
 

Ce que tu veux avoir dans ta table au final :

Code :
  1. SELECT article, sum(quantite), min(produit)
  2. FROM fruit
  3. GROUP BY article


 

Code :
  1. -- Ca, si ça marche tu peux te faire moine boudhiste
  2. UPDATE fruit
  3. SET quantite = (
  4. SELECT sum(quantite)
  5. FROM fruit f
  6. WHERE f.article = article
  7. )
  8.  
  9. -- On n'est plus à ça près ^^
  10. DELETE fruit
  11. WHERE produit != (SELECT min(produit) FROM fruit f WHERE f.article = article)


 
Et ça devrait marcher


Message édité par MagicBuzz le 06-11-2008 à 12:18:37

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Suppresion des doublons d'une base de données

 

Sujets relatifs
Mais comment font ces méta moteurs pour alimenter leur base de donnéesProblème d'accents après copie d'une base [résolu]
Synchronisation de deux bases de données (Access 2003)modifier le moteur d'une base Mysql
jointure en gardant toute la table de baseVBS & ADSI Probléme de création de "dossier de base"
Sauvegarde images (url) dans base de donnéechargement de data en base postgres
Plus de sujets relatifs à : Suppresion des doublons d'une base de données


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR