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 :

Recherche d'un enregistrement qui répond à la combinaison de plusieurs valeurs d'un critère


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 100
    Points
    100
    Par défaut Recherche d'un enregistrement qui répond à la combinaison de plusieurs valeurs d'un critère
    Bonjour,

    je bute sur une problématique qui je pense n'est pas compliquée MAIS j'ai du mal à défaire les noeuds!!

    Voici le contexte :
    - j'ai un ensemble de PRÉNOMS existants et une liste de NOMS
    - j'ai une table liens qui me permet de lier ces prenoms à ces noms comme ceci :

    PRENOM | NOM
    Jean | DUPONT
    Loic | DURAND
    Bernard | DUPONT
    Etienne | DUPUIS
    Fred | HENRI
    Jean | BLANC

    Dans ma requete je souhaiterai, en mettant comme critere PRENOM = Jean ET PRENOM = Bernard, qu'il me sorte NOM = DUPONT

    et je ne veux pas qu'il me sorte NOM = BLANC

    Merci par avance pour vos lumières
    Carpe Diem : Profitez du moment présent
    La connaissance non partagée n'a pas vraiment son utilité

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 083
    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 083
    Points : 30 841
    Points
    30 841
    Par défaut
    Un grand classique...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT  nom
    FROM    matable
    WHERE   prenom  IN ('jean', 'bernard')
    GROUP BY nom
    HAVING  COUNT(DISTINCT prenom) = 2
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre régulier Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 100
    Points
    100
    Par défaut
    Désolée al1_24, mais ça ne fonctionne pas.
    J'avais effectivement essayé avec la conditions ainsi :WHERE prenom IN ('jean', 'bernard') mais il me sort meme le cas exemple "Jean BLANC"...
    Et je ne peux pas mettre une conditions telles que HAVING COUNT(DISTINCT prenom) = 2 car c'est variable, par moment il n'y aura qu'un prenom et dans d'autre il y en aura plus de 2.

    En fait je ne sais pas comment traduire par une requete (est ce que c'est vraiment possible du coup?) mon besoin à savoir :
    Selon le (ou les prenoms) que je passe en critère a ma requete, est ce qu'une FAMILLE correspond, donc qu'il existe une famille NOM qui à comme membre la globalité des prenoms que j'ai passé en critère?
    Carpe Diem : Profitez du moment présent
    La connaissance non partagée n'a pas vraiment son utilité

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 036
    Points
    34 036
    Billets dans le blog
    14
    Par défaut
    La requête donnée par al1_24 correspond parfaitement à ton besoin. Il faut juste l'adapter en fonction du nombre de prénoms demandés.

    Je suppose que cette requête est lancée à partir d'une application ?
    Et bien c'est à l'application de construire la requête.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Points : 807
    Points
    807
    Par défaut
    Cherchez du côté de "division relationnelle"

  6. #6
    Membre régulier Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 100
    Points
    100
    Par défaut
    Merci Rams7s, CinePhil et al1_24 pour vos lumières.

    Après avoir un peu galéré j'avoue (parce que syntaxiquement me suis dis que c'était pas possible que ça ne fonctionne pas !!!), j'ai fais quelques tests (du fait que je suis dans un environnement Windev et base de données HyperFile)...et j'ai (ENFIN) pu aboutir!!

    Pour celles et ceux qui se retrouve confrontés à ce pb un jour, voici la subtilité !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT  nom, COUNT(*) as NumPrenom
    FROM    matable
    WHERE   prenom  IN ('jean', 'bernard')
    GROUP BY nom
    HAVING  COUNT(DISTINCT prenom) = 2
    En effet, sans ce : COUNT(*) as NumPrenom, il me mettait : "Aucun enregistrement trouvé"!!!

    Encore merci
    @++
    Carpe Diem : Profitez du moment présent
    La connaissance non partagée n'a pas vraiment son utilité

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

Discussions similaires

  1. [XL-2007] Recherche plusieurs valeurs selon deux critères
    Par Flal 60 dans le forum Excel
    Réponses: 7
    Dernier message: 07/04/2014, 18h41
  2. recherche un enregistrement qui contient 3 caractères
    Par sihem42 dans le forum Bases de données
    Réponses: 6
    Dernier message: 21/02/2014, 18h03
  3. comment rechercher les derniers enregistrement d'une table ?
    Par hornetboy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2005, 09h13
  4. [W2K] Recherche d'un logiciel qui masque les icones
    Par BiM dans le forum Windows 2000/Me/98/95
    Réponses: 2
    Dernier message: 25/08/2005, 20h51
  5. Réponses: 2
    Dernier message: 01/08/2005, 16h36

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