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

Discussion: Problème de jointure [AC-2016]

  1. #1
    Membre à l'essai
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 48
    Points : 23
    Points
    23

    Par défaut Problème de jointure

    Bonjour à tous,

    Pour m’entraîner et m'améliorer sur ACCESS je suis en train de créer une petite base de données.
    J'ai créé trois tables "tblArtciles" ; "tblIn" et "tblOut".

    J'ai lié "tblArticles" à la fois avec "tblIn" et "tblOut" avec le type Un-à-plusieurs en appliquant l'intégrité référentielle.

    Ci-dessous le schéma:

    Nom : Relations Tables.JPG
Affichages : 22
Taille : 41,9 Ko

    J'aimerais donc créer une requête me permettant de connaitre pour chaque article la quantité entrée ainsi que la quantité sortie.

    Pour ce faire, dans ma requête j'ai donc pris les champs : pkArticlesID et strArticlesRefArtcile de la tblArticles puis intInNumberIn de la tblIn et enfin intOutNumberUnits de la tblOut.

    Lorsque je lance la requête, rien ne se passe. J'ai l'impression, peut être à tort, que l'explication viendrait du fait que je n'ai pas les même articles dans la tblIn et tblOut que du coup j'aurais des valeurs Null et donc que ça ne marche pas...

    Ou alors, est-ce que je dois passer par une table intermédiaire afin de ressortir les info dont j'ai besoin?

    Juste pour info, si je fais deux requêtes distinctes, cela marche bien...

    Ci-dessous ma requête:

    Nom : qryTest.JPG
Affichages : 22
Taille : 77,5 Ko

    Si vous auriez une petite idée afin de solutionner mon problème ce serait top!!
    Et en abusant un tout petit peu, si vous aviez une petite explication avec ce serait vraiment un must!!

    Merci d'avance en tous cas pour ceux qui auront des éléments de réponse à m'apporter.

    A votre dispo si ma question n'est pas claire ou si vous avez besoin de plus info.

    Schoum

  2. #2
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 970
    Points : 1 314
    Points
    1 314
    Billets dans le blog
    1

    Par défaut

    Essaie un truc de ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblArticles.strArticlesRefArtcile, tblOut.fkOutArticlesID, tblIn.fkInArticlesID
    FROM (tblArticles LEFT JOIN tblIn ON tblArticles.pkArticlesID = tblIn.fkInArticlesID) LEFT JOIN tblOut ON tblArticles.pkArticlesID = tblOut.fkOutArticlesID;

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 48
    Points : 23
    Points
    23

    Par défaut

    Merci pour ce rapide retour.

    Lorsque je fais ça, j'ai une fenêtre qui s'ouvre me demandant de sélectionner la source de données.

    J'ai essayé d'adapter par rapport à la requête SQL que j'ai :

    Initialement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblArticles.pkArticlesID, tblArticles.strArticlesRefArtcile, tblIn.intInNumberIn, tblOut.intOutNumberUnits
    FROM (tblArticles INNER JOIN tblIn ON tblArticles.pkArticlesID = tblIn.fkInArticlesID) INNER JOIN tblOut ON tblArticles.pkArticlesID = tblOut.fkOutArtcilesID;
    Adaptée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT tblArticles.pkArticlesID, tblArticles.strArticlesRefArtcile, tblIn.intInNumberIn, tblOut.intOutNumberUnits
    FROM (tblArticles LEFT JOIN tblIn ON tblArticles.pkArticlesID = tblIn.fkInArticlesID) LEFT JOIN tblOut ON tblArticles.pkArticlesID = tblOut.fkOutArtcilesID;
    J'ai la même fenêtre qui s'affiche...

  4. #4
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 970
    Points : 1 314
    Points
    1 314
    Billets dans le blog
    1

    Par défaut

    Ecrit intégralement le message qui s'affiche

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 48
    Points : 23
    Points
    23

    Par défaut

    Alors, en refaisant, et en ajoutant GROUP BY ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tblArticles.pkArticlesID, tblArticles.strArticlesRefArtcile, tblIn.intInNumberIn, tblOut.intOutNumberUnits
    FROM (tblArticles LEFT JOIN tblIn ON tblArticles.pkArticlesID = tblIn.fkInArticlesID) LEFT JOIN tblOut ON tblArticles.pkArticlesID = tblOut.fkOutArtcilesID
    GROUP BY tblArticles.pkArticlesID, tblArticles.strArticlesRefArtcile, tblIn.intInNumberIn, tblOut.intOutNumberUnits;
    Du coup, si je veux m'éviter de devoir changer INNER en LEFT dans le code SQL, lorsque je créé mes relations il faut que je mette l'option 2 dans les propriété de jointure au lieu de l'option 1 c'est ça?

    EDIT:
    Voici la fenêtre qui s'affichait lorsque j'avais pas ajouté le GROUP BY
    Nom : Capture.JPG
Affichages : 17
Taille : 73,0 Ko

  6. #6
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 970
    Points : 1 314
    Points
    1 314
    Billets dans le blog
    1

    Par défaut

    Je suis content pour toi

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  7. #7
    Membre à l'essai
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 48
    Points : 23
    Points
    23

    Par défaut

    Merci beaucoup en tous cas de m'avoir mis sur la bonne piste.

    Mais du coup, si je peux abuser, est-ce qu'il y a un moyen d'éviter de toucher au code sql et d'avoir le même résultat?
    J'imagine que cela se joue directement dans les relations entre les tables, non?

  8. #8
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 970
    Points : 1 314
    Points
    1 314
    Billets dans le blog
    1

    Par défaut

    Bien sur en mode création tu modifies juste tes relations en Left, Rigth. Clic droit

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  9. #9
    Membre à l'essai
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 48
    Points : 23
    Points
    23

    Par défaut

    Ah... Je fais ça directement dans la requête et non dans "l'onglet" relation c'est ça?

  10. #10
    Modérateur
    Avatar de bertiny
    Homme Profil pro
    Enseignant
    Inscrit en
    mars 2013
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : mars 2013
    Messages : 970
    Points : 1 314
    Points
    1 314
    Billets dans le blog
    1

    Par défaut

    Oui oui sinon tu vas modifier les relations naturelles existantes entre les tables. Donc c'est au niveau de la requête comme tu viens de le dire. Chaque requête peut donc avoir sa structure et faire les jointures comme tu le souhaites.

    Pensons à améliorer nos compétences en toute humilité car aucune oeuvre faite par un humain n'est parfaite!!!

  11. #11
    Membre à l'essai
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 48
    Points : 23
    Points
    23

    Par défaut

    Super!!

    Encore un grand merci!!!!

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

Discussions similaires

  1. Problème de jointure de tables
    Par AurelBUD dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2005, 17h27
  2. Probléme de jointure
    Par Ajrarn dans le forum Langage SQL
    Réponses: 14
    Dernier message: 24/02/2005, 15h57
  3. Vraisemblable problème de jointure
    Par pimousse76 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 16h34
  4. [MS Access] Problème de jointure
    Par Erakis dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/02/2005, 22h15
  5. Problème de jointure ?!
    Par ebaynaud dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/11/2004, 12h27

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