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

Développement SQL Server Discussion :

Jointure entre 3 tables


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Togo

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut Jointure entre 3 tables
    Bonjour tout le monde,
    j'ai 3 tables :


    table A qui contient les données liées aux tables B et C ,et la liaison est le champs TransID

    sachant qu'il n y a aucune liaison entre la table B et C
    je souhaite afficher des champs des 3 tables et surtout de la table C ,j'ai fait la requête suivante mais elle ne retourne aucun enregistrement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    select  A.ChampA,B.ChampB,C.ChampC
    from A 
    inner join B on  A.TransId =B.TransId
    inner join C on  A.TransId=C.TransId
    j’espère que c'est claire.
    merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    La requête est bien construite. Ce serait plutôt une question de données.
    En utilisant des jointures externes (en remplaçant INNER par LEFT ou même FULL), tu pourrais identifier les lignes pour lesquelles tu n'as pas de correspondance.
    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
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 251
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    La requête est bien construite. Ce serait plutôt une question de données.
    Ou de compréhension et explication du besoin.

    La requête est correcte.

    Cette requête va renvoyer tous les enregistrements de la table A (avec les données correspondante des table B et C) qui ont obligatoirementun élément lié correspondant à la fois dans la table B et dans la table C

    Si, pour un enregistrement de A à retourner, il peut ne pas y avoir d'enregistrement dans B ou dans C, il faudra modifier la jointure correspondant en jointure externe (gauche, ici, à priori) donc en LEFT OUTER JOIN

  4. #4
    Nouveau candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Juin 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Togo

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 2
    Par défaut
    en fait c'est un problème de donnée et je ne sais pas comment les extraires ,je vous donne un exemple de données pour être plus claire:
    la table A : de Rapprochement entre facture et paiement:

    Trans_R montantR

    7988 300

    3015 400

    7987 100

    Table B de paiement:

    trans_E montantE NUM_DocE
    7988 300 NUME1
    7987 100 NumE2

    Table C de Facture:

    trans_F montantF NUM_DocF

    3015 400 NUMC

    le résultat que je souhaite avoir avec ma requête est le suivant:
    NUM_DocF MontantF NUM_DocE MontantE


    NUMC 400 NUME1 300
    BUMC 400 NUME2 100

    c'est en fait une facture avec ses deux paiements.

Discussions similaires

  1. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11
  2. Jointure entre 3 tables
    Par zigune dans le forum Langage SQL
    Réponses: 9
    Dernier message: 15/11/2004, 16h04
  3. Jointure entre deux tables et résultat
    Par Asdorve dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 14h50
  4. [jointure]requete possible de double jointure entre 2 tables
    Par akira_le_gaucher dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/05/2004, 15h03
  5. Jointure entre 2 tables et OR
    Par PyRoFlo dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/02/2004, 18h42

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