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

Langage SQL Discussion :

SQL Requete doublon


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 63
    Points
    63
    Par défaut SQL Requete doublon
    Bonjour,

    Voici ma table :

    Etudiant
    etu_old_matricule
    etu_numero
    etu_nom
    etu_prenom
    etu_nai_date

    Et j aimerai trouver tous les etudiants ayant le même nom, prénom, et date de naissance ... afin de trouver les doublons ...

    voici ma premiere requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT etu1.etu_old_matricule, etu2.etu_old_matricule, etu1.etu_numero, etu2.etu_numero, etu1.etu_nom
    FROM etudiant etu1, etudiant etu2
    WHERE etu1.etu_numero!=etu2.etu_numero AND etu1.etu_nom = etu2.etu_nom AND etu1.etu_prenom = etu2.etu_prenom and etu1.ETU_NAI_DATE=etu2.ETU_NAI_DATE limit 100
    Mais la requête boucle ... c'est pour ca que j ai mis une limite
    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Pour éviter les doublons (AB / BA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT  etu1.etu_old_matricule
        ,   etu2.etu_old_matricule
        ,   etu1.etu_numero
        ,   etu2.etu_numero
        ,   etu1.etu_nom
    FROM    etudiant etu1 
        INNER JOIN 
            etudiant etu2
            ON  etu1.etu_numero > etu2.etu_numero 
            AND etu1.etu_nom = etu2.etu_nom 
            AND etu1.etu_prenom = etu2.etu_prenom 
            AND etu1.etu_nai_date=etu2.etu_nai_date
    ;
    Citation Envoyé par parasol007 Voir le message
    Mais la requête boucle ...
    Qu'entends tu par là ?

  3. #3
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Et pourquoi pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    SELECT
      E1.etu_numero,
      E1.etu_nom,
      E1.etu_prenom,
      E1.etu_nai_date
    FROM etudiant E1
      JOIN (SELECT 
              etu_nom,
              etu_prenom,
              etu_nai_date
            FROM Etudiant
            GROUP BY
              etu_nom,
              etu_prenom,
              etu_nai_date
            HAVING COUNT(*) >1) AS E2
      ON E1.etu_nom = E2.etu_nom
        AND E1.etu_prenom = E2.etu_prenom
        AND E1.etu_nai_date = E2.etu_nai_date
    ORDER BY
      E1.etu_nom,
      E1.etu_prenom,
      E1.etu_nai_date

  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    et pourquoi pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT etu1.etu_old_matricule,  etu1.etu_numero, etu1.etu_nom
    FROM etudiant etu1
    GROUP BY etu1.etu_nom,etu1.etu_prenom, etu1.ETU_NAI_DATE
    HAVING COUNT(1)>1
    Bon courage

  5. #5
    Membre du Club
    Inscrit en
    Avril 2006
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 129
    Points : 63
    Points
    63
    Par défaut
    Beh c'est parfait !
    Merci beaucoup!!!!

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

Discussions similaires

  1. Requete SELECT SQL sans doublon
    Par arnaud_76 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 17/11/2014, 07h01
  2. [SQL] requetes inbriquées, comment faire celle ci??
    Par Devil666 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/05/2005, 15h44
  3. [SQL/access] Doublon sur un champ
    Par kor dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/01/2005, 11h21
  4. [MS-SQL]requete sur 3 tables
    Par pascalT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/04/2003, 11h24

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