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

Access Discussion :

Problème de requêtes sur deux tables


Sujet :

Access

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut Problème de requêtes sur deux tables
    Bonjour à tous,
    J'ai deux tables. dans l'une des personnes dans l'autre le lien des agences et des personnes.
    Les personnes peuvent travailler dans plusieurs agences.
    et j'aimerais obtenir par exemple : les personnes qui travaillent à la fois dans l'agence 1 et dans l'agence 2
    j'ai fait une requête comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select personne.* from personne inner join agence_pers on personne.idpers=agence_pers.idpers where agence_pers.idagence=1 and agence_pers.idagence=2;
    Mais il ne me renvoie rien alors que je sais que la requête doit retourner quelquechose.
    Merci d'avance pour vos réponses.

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    tu devrais peut-être donner la liste des tables avec les champs principaux. Parce qu'à première vue il y a un pb:
    une personne peut travailler dans plusieurs agences (dixit) et j'imagine qu'une agence peut employer plusieurs personnes. Il te faut donc au moins 3 tables : Personnes, Agences, Liaisons.

    Cordialement,
    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    le problème vient du and

    un id agence ne peut être 1 et 2 (voir aristote sur le sujet)

    remplace ton and par un or

    un id agende peut etre 1 ou 2
    Elle est pas belle la vie ?

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    pgz -> oui bien sûr j'ai trois table ma requête ne concerne que 2 d'entre elles.
    random -> si je met un OR, la requête va me renvoyer les personnes qui travaillent pour les 2, pour l'une ou pour l'autre. je voudrais juste celles qui travaillent pour les 2 en même temps.

  5. #5
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,
    en me basant sur ce que tu veux avoir c'est bien un AND qu'il faut faire et non pas un OR. car ici on veut avoir un id= 1 et id=2 affectés à une personne d'où la relation de un à plusieurs (en tenant compte que des deux tables). le OR est une fonction logique elle ne s'interprete pas comme le OU dans le langage Français mais se rapproche plutot à un et.
    bon bref poste nous le schéma relationnel de tes tables.

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Pour avoir les personnes qui travaillent pour les 2 agences. Il te faut tout d'abord sélectionner les personnes qui travaillent dans l'agence 1 et vérifier dans une sous-requête que cette même personne travaille dans l'agence 2. Ca doit donner une requête du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select personne.* from personne inner join agence_pers on personne.idpers=agence_pers.idpers where agence_pers.idagence=1 and EXISTS (Select * FROM agence_pers as ag2 WHERE ag2.idpers = agence_pers.idpers AND ag2.idagence=2);

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    633
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 633
    Points : 721
    Points
    721
    Par défaut
    J'ai trouvé une requête qui me parait plus facile à coder :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select idpers from agence_pers where idagence=1 or idagence=2
    group by idpers having count(idpers)=2;
    si ça peut aider quelqu'un...et merci pour votre temps

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

Discussions similaires

  1. Problème de requêtes sur deux tables
    Par Gecko62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/03/2012, 00h46
  2. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  3. Requête sur deux tables et réponses en colonnes
    Par grandoc dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/12/2006, 12h49
  4. suite au problème de requête sur plusieur table
    Par michelGProuq dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/07/2006, 16h19
  5. Requête sur deux tables en même temps
    Par will89 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/04/2006, 11h01

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