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 :

[requetes / Jointures externes] : expression de jointure


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [requetes / Jointures externes] : expression de jointure
    [requetes / Jointures externes] : expression de jointure non supportée

    Alors voilà suite à mon pécèdant post : http://www.developpez.net/forums/viewtopic.php?t=377639

    Je me suis servi des requêtes externes pour résoudre mes p'tits soucis.

    Donc je repends pour les tables :
    CreditGlobal(NoCredit, cathegorie ....)
    CréditéSur(NoMission,NoCrédit,CréditConsommé)
    Missions(NoMission,.....)

    les relations :
    -1 vers 1 de créditéSur vers Missions et 0 vers un dans le sens contraire
    -1 vers 1 de créditéSur vers CreditGlobal et 0 vers N dans l'autre sens

    Pour le SGBD : access

    Et pour ma requête où l'expression de jointure n'est pas prise en compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT  CG.Cathegorie, CG.Type,CG.Année,CG.Montant, S.Somme, M.NoMission, M.TypeMissio, M.NomLieu
    from (SELECT CG1.NoCredit, SUM(CS1.CréditConsommé) AS Somme
             FROM CreditGlobal AS CG1 LEFT JOIN CréditéSur AS CS1 ON CS1.NoCrédit=CG1.NoCredit
             WHERE CG1.Année=DatePart("yyyy",Now())
             GROUP BY CG1.NoCredit) AS S, CrediGolbal AS CG LEFT OUTER JOIN CréditéSur AS CS ON CG.NoCredit = CS.NoCrédit, Missions as M
    WHERE S.NoCredit = CG.NoCredit and CS.NoMission=M.NoMission
    ;
    Vos Impréssions ?
    Access lors de son mlessage d'erreur ne me précise pas quelle jointure n'est pas bonne.

    La sous requête a été testé à part est elle fonctionne.
    Please Help

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bon alors je me suis apperçu qu'il fallait mettre des parenthèses pour plusieurs join. Bon maintenant le problème c'est que, apparament, access ne semble pas trop apprecier un melange entre les joins inner et left outer.


    (Aidez moi ça me fait mal de me taper la tete sur le clavier )

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Dans la requête que tu as écrite ci dessus il n'y a pas de mélange d'inner join et left join. Il y a un mélange entre les anciennes façon de faire les jointures et les nouvelles.

    Voici la requête qui ne mélange pas les deux façon de faire .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT  CG.Cathegorie, CG.Type,CG.Année,CG.Montant, S.Somme, M.NoMission, M.TypeMissio, M.NomLieu 
    from	(SELECT CG1.NoCredit, SUM(CS1.CréditConsommé) AS Somme 
    		 FROM CreditGlobal AS CG1 
    		 LEFT JOIN CréditéSur AS CS1 ON CS1.NoCrédit=CG1.NoCredit 
    		 WHERE CG1.Année=DatePart("yyyy",Now()) 
    		 GROUP BY CG1.NoCredit
    	) AS S
    	inner join 
    	 CrediGolbal AS CG 
    	 on S.NoCredit = CG.NoCredit
    	 LEFT OUTER JOIN CréditéSur AS CS ON CG.NoCredit = CS.NoCrédit
    	 inner join 
    	 Missions as M 
    	 on CS.NoMission=M.NoMission 
    ;
    Juste une petite remarque sur tes noms de champs et l'othographe.
    En Français catégorie ne prend pas de H.
    Pourquoi le champ TypeMissio de la table Missions n'a pas de n final?
    Mettre des caractères accentués dans les noms de champs, et de tables est rarement une bonne idée.
    A+
    Soazig

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Oui je sais c'est pas bien de mettre des accent sur les variables que ce soit des noms de colonne ou autre. Et il y a pas de h à catégorie, je le sais mais on est pas toujours réveillé de bon matin et on a pas toujours envie de se rettaper toutes les corrections qui découlent d'un changement d'un nom de colonne, une fois le travail bien avancé.
    Et d'accord y a pas de "n" sur mon copié/collé mais c'est pas ça qui me sort une erreur comme quoi access ne peut pas prend en compte le type de jointure.

    Et si j'ai donné l'info comme quoi je n'arrive pas à fare cohabiter les jointure de type inner et outer c'est aussi parce que je fais ma jointure dans le where et que j'ai essayé en mettant du inner dans mon from.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    personne ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Bon je me suis démerdé tout seul merci quand même.

    je me devant moi

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

Discussions similaires

  1. Auto jointure externe condition pre jointure
    Par HurtMarley dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/10/2011, 17h18
  2. [ZF 1.5] Jointure externe contenant une jointure interne...
    Par Eusebe dans le forum Zend_Db
    Réponses: 1
    Dernier message: 25/04/2008, 14h10
  3. Requete Jointure Externe...Soucis!!
    Par paflolo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/03/2006, 11h25
  4. requete avec double jointure externe
    Par cdu dans le forum Langage SQL
    Réponses: 8
    Dernier message: 04/01/2006, 14h54
  5. [Requete] jointure externe -> where
    Par MrDuChnok dans le forum Langage SQL
    Réponses: 12
    Dernier message: 12/07/2004, 15h48

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