Requete SQL doublons sur 2 champs

Résolu/Fermé
Bouh - 30 nov. 2005 à 10:14
sungvandan
Messages postés
1
Date d'inscription
mercredi 8 janvier 2014
Statut
Membre
Dernière intervention
8 janvier 2014
- 8 janv. 2014 à 09:30
Bonjour à tous,
de bon matin dans la programmation!
Je cherche une requête SQL permettant de me sortir des doublons sur deux champs...
Je m'explique, j'ai une base XXX avec 5 champs, où il y a malheureusement certaines lignes où 2 champs Y et Z sont identiques.
Exemple :
1ère ligne : Y=0123 et Z=7895
2ème ligne : Y=0123 et Z=7895,
Ce qui est une erreur. Sur 4000 energistrement, j'aimerai automatiser la chose. Au moins me sortir ces lignes en double, voir triple. Car il faudra que je supprime les plus anciens enregistrement, suivant la date (qui est aussi un des champs).
En espérant que vous m'ayez comprise,
Merci de me répondre!
Bonne journée à vous,
Bouh

6 réponses

B@|-|@N
Messages postés
386
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
7 décembre 2007
61
30 nov. 2005 à 11:09
Erf, me doutais bien que tu me poserais cette question.
Alors en y regardant de plus près, pour enlever les lignes ou il n'y pas repetitions...

Ah oui, je me rappelle. Il faut utiliser Having, ce qui nous donne :
SELECT 
      CONCAT(Y,'_',Z) AS valeur, 
      COUNT(*) AS nombre_de_repetition
FROM nom_table
GROUP BY valeur
HAVING COUNT(*)>1

Bahan, grillé par sqlman ^_^
18
J'obtiens l'erreur :
Parse error: syntax error, unexpected T_STRING

: /
0
7 ans plus tard....

Merci pour cette exemple.

J'ai un problème à peu près similaire.

Voila mes couples:

1ère ligne : C1='mari1' et C2='femme1'
2ème ligne : C2='femme1' et C1='mari1'

Et j'aimerais juste garder un seule ligne car pour moi un couple est l'association de veux valeurs qu'elles soient C1 ou C2.

donc une ligne
1ère ligne : C1='mari1' et C2='femme1'

Merci.
0
sungvandan
Messages postés
1
Date d'inscription
mercredi 8 janvier 2014
Statut
Membre
Dernière intervention
8 janvier 2014

Modifié par sungvandan le 8/01/2014 à 09:38
Pour ton problème, je pense qu'on peut ajouter simplement la condition c1 < c2

 SELECT c1,c2 FROM  ... WHERE c1<c2 

Ou tu peux
 SELECT c1,c2 FROM  ... WHERE c1<=c2 
0