IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Rechercher des doublons [WD17]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 67
    Par défaut Rechercher des doublons
    Bonjour,

    J'ai une base qui contient entre autre une rubrique numéro de dossier une rubrique nom et une rubrique prénom.
    Je souhaite créer une requête qui me ressortira tous les dossiers de la base où les noms et prénoms sont déjà existants.
    Par exemple, je voudrais qu'il m'affiche tous les dossiers dont le nom est "DUPONT" et le prénom est "Robert" si il y a plusieurs dossier correspondant.
    Bien entendu si je recherchais tous les dossiers de Robert DUPONT, ça ne serait pas dur mais là je ne sais pas ce que je recherche car je veux qu'il me ressorte ceux qui sont en double ou triple qu'il s'appelle Robert DUPONT ou Pierre DURAND.
    Et là franchement je bloque et je suis sur que c'est tout bête...

    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    et voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select nom, prenom, count(*)
    from ma_table
    group by nom, prenom
    having count(*) > 1

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 67
    Par défaut
    Merci beaucoup Emmanuel !
    Je me doutais bien que ça devait pas être sorcier.
    Par contre là ça me donne une ligne par nom prénom identique avec le nombre de fois.
    Je présume que pour avoir une ligne contenant chaque dossier il faut que je fasse une autre requête qui me sort chaque numéro de dossier correspondant à chaque ligne de la première requête. C'est ça ?
    En fait je voudrais un tableau genre :
    20120087 DUPONT Robert
    20120156 DUPONT Robert
    20130478 DUPONT Robert
    20110156 DURAND Pierre
    20130124 DURAND Pierre

    Merci encore !

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 468
    Par défaut
    Bonjour,
    Tu peux le faire avec une jointure:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select t1.*
    from LaTable t1
    inner join LaTable t2 on t1.nom = t2.nom and t1.prenom = t2.prenom

    Tatayo.

  5. #5
    Expert confirmé
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 592
    Par défaut
    Puisque tu as la liste des noms-prénoms, tu la parcours pour rechercher les dossier de ces personnes...

  6. #6
    Membre Expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Par défaut
    Citation Envoyé par meganulos Voir le message
    Merci beaucoup Emmanuel !
    Je me doutais bien que ça devait pas être sorcier.
    Par contre là ça me donne une ligne par nom prénom identique avec le nombre de fois.
    Je présume que pour avoir une ligne contenant chaque dossier il faut que je fasse une autre requête qui me sort chaque numéro de dossier correspondant à chaque ligne de la première requête. C'est ça ?
    En fait je voudrais un tableau genre :
    20120087 DUPONT Robert
    20120156 DUPONT Robert
    20130478 DUPONT Robert
    20110156 DURAND Pierre
    20130124 DURAND Pierre

    Merci encore !
    En pur SQL
    Methode 1
    select * from m_table where (nom, prenom) in (
    select nom, prenom
    from ma_table
    group by nom, prenom
    having count(*) > 1)
    méthode 2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select * from m_table A1 where exists (
    select 1
    from ma_table A2
    where a1.nom = a2.nom 
    and a1.prenom = a2.prenom
    group by nom, prenom
    having count(*) > 1)
    méthode 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select * 
    from ma_table A1, (select nom, prenom
    from ma_table 
    group by nom, prenom
    having count(*) > 1) as A2
    where A1.nom = A2.nom
    and A1.prenom = A2.prenom
    je ne sais pas quelle méthode est supportée par HF

  7. #7
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 468
    Par défaut
    Je viens de voir que ma requête n'est pas bonne:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT t1.*
    FROM LaTable t1
    INNER JOIN LaTable t2 ON t1.nom = t2.nom AND t1.prenom = t2.prenom and t1.dossier <> t2.dossier

    Tatayo.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 67
    Par défaut
    Merci beaucoup !
    Celle là je ne l'aurais jamais trouvé tout seul.
    La seule qui marche est la "méthode 3" de Emmanuel !
    Les autres méthodes d'Emmanuel ne ramène rien (la 2) ou indique une erreur (La 1)
    Celle de Tatayo me ramène les bonnes données mais en double en en triple.

    Encore merci à tous !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Rechercher des doublons à partir du résultat d'une requête
    Par oplaut dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 10/07/2010, 08h34
  2. Rechercher des doublons dans ACCESS(quasi doublons)
    Par ingal30 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 10/03/2010, 13h57
  3. Rechercher des doublons dans un fichier de type csv
    Par phoenixatareva dans le forum C++
    Réponses: 6
    Dernier message: 12/08/2008, 20h02
  4. Réponses: 0
    Dernier message: 02/10/2007, 13h44
  5. recherche des doublons dans une hash
    Par Jasmine80 dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2007, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo