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 :

Aide doublon sur un select


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2021
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Aide doublon sur un select
    Bonjour,

    J'aurais besoin de votre aide, mais je ne vois pas bien comment faire après avoir cherché pendant 2h... je suis pas très fort donc je viens demander de l'aide pour mieux comprendre.

    J'ai une table ADR, dans laquelle je répertorie les adresses de mes clients.

    Malheureusement pour un client je constate que j'ai plusieurs adresses...

    Exemple: Client 2741 j'ai deux adresses avec des ID_ADR différent.

    Donc quand je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * 
    from adr where id_client in 
    (2741)
    order by id_client, id_adr
    J'ai en résultat ceci :

    ID_CLIENT ID_ADR
    2741 2808
    2741 10207

    Je souhaite ne garder que l'id_adr le plus bas dans mon select à savoir le 2808.

    Comment procéder ??

    j'arrive à trouver mes doublons, je ne veux pas supprimer les autres, juste les écarter de mon select.

    Merci

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 257
    Points : 23 078
    Points
    23 078
    Billets dans le blog
    2
    Par défaut
    Plusieurs solutions possibles

    Par exemple

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select * 
    from adr A1
    where id_client = 2741
      and id_adresse =
         (select min (id_adresse)
          from adr A2
          where A2.id_client = A1.id_client
         )

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select * 
    from adr A1
    where id_client = 2741
      and not exists
         (select 1
          from adr A2
          where A2.id_client = A1.id_client
            and A2.id_adresse < A1.id_adresse
         )

    D'autres solutions sont possibles, cf. mon blog ici

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2021
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Je viens de trouver aussi ca, et ca semble marcher :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select min(id_adr) 
    from adr where id_client in 
    (2741)
    order by id_client, id_adr

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2021
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci escartefigue je suis pas doué clairement !!!!

    Enfin, j'aime bien comprendre et chercher donc a force

    Merci encore

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 257
    Points : 23 078
    Points
    23 078
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Neoweb80 Voir le message
    Je viens de trouver aussi ca, et ca semble marcher :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select min(id_adr) 
    from adr where id_client in 
    (2741)
    order by id_client, id_adr
    Ce n'est pas la même chose, cette requête de restitue que l'identifiant adresse.
    Pour restituer les informations associées à cet identifiant minimal, il faut utiliser l'une des solutions proposées plus haut (ou celles de mon blog)

Discussions similaires

  1. Besoin d'aide sur un select trop complexe pour moi
    Par Oribiahn dans le forum Requêtes
    Réponses: 1
    Dernier message: 24/08/2010, 15h22
  2. Select sans doublon sur un champ
    Par Carnot dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/10/2007, 22h36
  3. aide sur Requète Select
    Par manelBenAli dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/02/2007, 12h23
  4. Aide sur une selection de chaine de char avec une souris
    Par Baharroth dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/11/2006, 21h17
  5. [MySQL] aide sur un select
    Par nebil dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/06/2006, 12h54

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