Recherche de doublons

elodie -  
 letissya -
Salut, J'arrête pas d'avoir des pb, j'en ai marre!

Cette fois ci, je voudrait chercher les doublons dans ma table de ma base qui est toujours sur MySQL sous windows.
Exactement, j'ai une table clients et je voudrait connaître ceux qui ont le même Telephone.
Voila ce que je fait:

SELECT Telephone FROM clients GROUP BY Telephone HAVING COUNT(Telephone)>1;

Et là, il m'affiche 2 clients mé qui ont des tel diférent:
RaisonSociale Telephone
essai 04.94.25.25.25
lbn 04.42.56.85.12

Au lieu de:
RaisonSociale Telephone
essai 04.94.25.25.25
clt 04.94.25.25.25

Merci de bien vouloir m'aider.

4 réponses

teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Precisons le probleme veux tu...
Tu as une table (simplifiee):

Nom Tel
aaa 999
bbb 111
ccc 999
ddd 222
eee 111

et tu veux avoir en sortie de ta requete

999 2
111 2

C'est ca?

.  .
\_/
0
elodie
 
Ta compris le truc mais au lieu de m'afficher le nombre de doublons, je veux qu'il me les affiche carrément:

aaa 999
ccc 999
bbb 111
eee 111

Merci de te pencher sur mon pb
0
teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
OK...
SELECT nom, tel, COUNT(tel) AS occurence FROM matable WHERE occurence>1 ; ca marche pas ca?

En tout cas, tu ne peux pas utiliser un GROUP BY, cela regroupe les donnees selon ce critere...

.  .
\_/
0
elodie
 
Non ca ne marche pas,
Il me dit : Champ 'occurence' inconnu dans where clause.
Par contre si je met le count dans le having, là il me met qu'un seul enregistrement.
càd, sur
aaa 999
ccc 999
il me donne que : aaa 999
0
Letissya
 
Bonjour,

J'ai le même problème que toi...
J'ai une requête avec un group by et having mais ça ne me donne pas les doublons à cause du groupe by qui les supprime..

je cherche une solution, si jamais tu en trouves une ce serait cool que tu me la transmette.. et dès que j'ai trouvé je te mail...

merci
0
elodie > Letissya
 
Salut, Désolé d'avoir tardé pour te répondre mais ca fé un bail que je vé plus sur ma boite email.
Sinon,j'ai résolu mon problème en faisant 2 requêtes.
La première sélectionne tous les téléphonnes de ma table, je les mets dans une variable.
Et dans ma deuxième requête je sélectionne les clients qui ont le même téléphonne que que les N°Tel que g mis dans ma variable grace à la requête précédente.

Je sé pas si ta compris le contexte mé ca fé longtem que g fait ca et je me souvien pas exactement de mon script.
Mé je vé voir et en cas je te passe exactement la syntaxe.
A plus
0
dmonnierfr Messages postés 13 Statut Membre 8 > elodie
 
Je ne connais pas MySQL mais sur Oracle ou sur SQL Server, j'aurai écrit ceci :

select A.nom,
A.telephone
from table as A,
table as B
where A.telephone = B.telephone
and A.nom != B.nom
0
letissya > dmonnierfr Messages postés 13 Statut Membre
 
Ben cela fonctionne, merci..
Par contre j'aimerai aller un peu plus loin, je m'explique :
j'aimerais pouvoi afficher en fonction du nombre de personne qui a le même numéro.

Pour le moment j'ai un truc comme ça :
aaa 999
ccc 999
fff 999
bbb 111
eee 111
rrr 555
...

et ce que j'aimerais c'est paramétrer en fonction du meme numéro de téléphone ma requete pour obtenir juste:
aaa 999
ccc 999
fff 999

ou

bbb 111
eee 111

Je suis pas certaine que ce soit possible mais bon.
0
letissya > dmonnierfr Messages postés 13 Statut Membre
 
Ben je viens de trouver la solution

select A.nom,
A.telephone
from table as A,
table as B
where A.telephone = B.telephone
and A.nom != B.nom
group by A.nom, A.telephone
having count(A.nom) = X

X étant la valeur à paramétrer : 1, 2, 3, ....

j'ai un petit bug néanmoins quand je met X = 2 il m'affiche tous les groupes de 3 personnes qui ont le meme tél.. mais bon
Merci à tous pour votre aide
0