Problème avec left join [Résolu]

Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Dernière intervention
13 mars 2014
- - Dernière réponse : fallpoint
Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Dernière intervention
13 mars 2014
- 16 sept. 2013 à 14:16
bonsoir à tous je viens solliciter votre aide sur un problème que je n'arrive pas à résoudre depuis trois jours. Je veut afficher les informations concernant un élève sur un test comme suit:
j'arrive à afficher toutes les informations si je n'associe pas le note de l'élève, mais dés que j'essaie d'ajouter une note il y'a erreurs voici ma requête
 String sql="select libelle,date_test,nom_el,prenom_el,date_naiss,sexe,classe,nom_ecole,nom_iden,nom_academie,note"
                    + " FROM (((((((TYPE_TEST"
                    + " RIGHT JOIN TEST ON TEST.code_type_test=TYPE_TEST.code_type_test)"
                    + " RIGHT JOIN TEST_ELEVE ON TEST_ELEVE.code_test=TEST.code_test)"
                    + " RIGHT JOIN ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve)"
                    + " LEFT JOIN ECOLE ON ELEVE.code_ecole=ECOLE.code_ecole)"
                    + " LEFT JOIN IDEN ON ECOLE.code_iden=IDEN.code_iden)"
                    + " LEFT JOIN ACADEMIE ON ACADEMIE.code_academie=IDEN.code_academie)"
                    + " LEFT JOIN (select SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis "
                    + "AND DISCIPLINE.nom_dis='mathematique')"
                    + " ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve)";
Afficher la suite 

Votre réponse

5 réponses

Messages postés
14316
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
5 décembre 2018
0
Merci
Bonsoir,

Quelle est l'erreur ?
Commenter la réponse de NHenry
Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Dernière intervention
13 mars 2014
0
Merci
salut voici l'erreur afficher
[Microsoft][Pilote ODBC Microsoft Access] Expression JOIN non support?e.
Commenter la réponse de fallpoint
Messages postés
14316
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
5 décembre 2018
0
Merci
LEFT JOIN (select SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis "
                    + "AND DISCIPLINE.nom_dis='mathematique')"
                    + " ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve)


Un Left Join d'une sous-requête qui ne retourne qu'un résultat ?
Pourquoi ne pas faire directement une sous requête dans le champ ?

SELECT ..., (SELECT ... ) AS NomChamp, ... FROM ...

Commenter la réponse de NHenry
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Salut,

T'as pas un souci avec "ELEVE" ?

Tu fais une première jointure avec une table ELEVE :
RIGHT JOIN ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve 


puis une seconde avec ta sous requete à laquelle tu donnes l'alias ELEVE...
LEFT JOIN (select SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis
AND DISCIPLINE.nom_dis='mathematique')
ELEVE ON ELEVE.code_eleve=TEST_ELEVE.code_eleve


En plus dans cette seconde jointure, tu ne prends pas le code_eleve... Donc comment veux-tu que la jointure fonctionne ?

Essaie avec ça (en supposant qu'il y a bien un code_eleve dans NOTES:
LEFT JOIN (select code_Eleve, SUM(note) FROM NOTES,DISCIPLINE where DISCIPLINE.code_dis=NOTES.code_dis
AND DISCIPLINE.nom_dis='mathematique' group by code_eleve)
NOTES_ELEVE ON NOTES_ELEVE.code_eleve=TEST_ELEVE.code_eleve


Commenter la réponse de sp40
Messages postés
9
Date d'inscription
dimanche 28 octobre 2012
Dernière intervention
13 mars 2014
0
Merci
Merci à tous sa marche maintenant
Commenter la réponse de fallpoint

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.