Rechercher : dans
Par :

Recherche de doublons

Dernière réponse le 8 avr 2003 à 17:50:37 elodie, le 19 mar 2003 à 11:41:43 
 Signaler ce message aux modérateurs

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.

Meilleures réponses pour « Recherche de doublons » dans :
Eviter les doublons dans Excel VoirEviter les doublons lors d'un encodage dans un colonne de feuille excel: prendre le format conditionnel sur le première cellule sous les titres (par ex A2) choisir la formule suivante : =NB.SI($A$2:$A$21;A2)>1 mettre là la couleur de fond...
Rechercher des images de Noël : père Noël, traîneaux, sapin... VoirRechercher des images de Noël sur Internet Effectuer une recherche rapide d’images de Noël Effectuer une recherche avancée d’images de Noël Rechercher des images de Noël sur une banque d’images en ligne Rappel Rechercher des images de...
Supprimer l'historique des recherches VoirLorsque vous utilisez un formulaire de saisie, par exemple dans la barre de recherche de Google, le navigateur affiche la liste des dernières recherches. Pour des raisons de confidentialité ou d'optimisation, vous souhaitez supprimer une ou...
Télécharger Picasa VoirPicasa est un logiciel de gestion de photos permettant de rechercher et d'organiser les photos stockées sur votre disque dur. Les images stockées sur l'ordinateur sont analysées et triées automatiquement par date. Picasa permet de renommer...
PHP - Créer un moteur de recherche VoirIdée générale Le moteur de recherche ci-dessous ne correspond qu'à une idée possible de moteur de recherche simple, ne gérant qu'un seul mot clé. Le concept du fonctionnement de ce moteur est de créer une base de donnée contenant les mots clés de...
Rechercher sur Internet VoirRechercher sur Internet Etant donné le nom de pages web présentes pour le Web, il est nécessaire d'utiliser un outil pour rechercher une page spécifique correspondant à des critères de recherche: le moteur de recherche. Pour utiliser un moteur de...
Web - Moteur de recherche VoirIl existe une énorme quantité d'informations sur Internet (plusieurs millions ou milliards de documents), et ces informations sont pour la plupart renouvelées quotidiennement. Le moteur de recherche est un élément indispensable pour s'y...

1

teebo, le 19 mar 2003 à 11:50:12

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?

.  .
\_/

Répondre à teebo

2

elodie, le 19 mar 2003 à 15:06:19

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

Répondre à elodie

3

teebo, le 19 mar 2003 à 15:16:18

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...


.  .
\_/

Répondre à teebo

4

elodie, le 19 mar 2003 à 16:26:20

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

Répondre à elodie

5

Letissya, le 3 avr 2003 à 16:58:09

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

Répondre à Letissya

6

elodie, le 7 avr 2003 à 13:11:47

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

Répondre à elodie

7

dmonnierfr, le 8 avr 2003 à 16:42:32

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

Répondre à dmonnierfr

8

letissya, le 8 avr 2003 à 16:56:15

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.

Répondre à letissya

9

letissya, le 8 avr 2003 à 17:02:54

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

Répondre à letissya

10

 letissya, le 8 avr 2003 à 17:50:37

Dernier post pour la version définive de la requête :

SELECT A.nom, A.telephone
FROM table A, table B
WHERE (A.telephone = B.telephone and A.nom != B.nom )
OR (A.telephone = B.telephone and A.nom = B.nom )
GROUP BY A.nom, A.telephone
HAVING COUNT(A.nom)=X

Dans cette version on peut aussi afficher les personnes qui n'ont pas de numéro commun avec X=1... et toujours les doublons avec X = 1, 2, 3, ...

Répondre à letissya