Problème avec left join

Résolu
fallpoint Messages postés 9 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 13 mars 2014 - 12 sept. 2013 à 22:30
fallpoint Messages postés 9 Date d'inscription dimanche 28 octobre 2012 Statut Membre 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)";
A voir également:

5 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
12 sept. 2013 à 23:12
Bonsoir,

Quelle est l'erreur ?
0
fallpoint Messages postés 9 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 13 mars 2014 2
13 sept. 2013 à 11:23
salut voici l'erreur afficher
[Microsoft][Pilote ODBC Microsoft Access] Expression JOIN non support?e.
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
15 sept. 2013 à 15:32
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 ...

0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
16 sept. 2013 à 11:06
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


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fallpoint Messages postés 9 Date d'inscription dimanche 28 octobre 2012 Statut Membre Dernière intervention 13 mars 2014 2
16 sept. 2013 à 14:16
Merci à tous sa marche maintenant
0
Rejoignez-nous