Excercice a resoudre
Résolu
tytyke
-
Anonyme -
Anonyme -
Bonjour,
Je debute dans le sql et je ne trouve pas les reponses
Voici mes tables :
Etudiant( Matricule, Nom,Prenom)
Spécialité( Matricule,Specialité)
Note( Matricule,Note,Module)
Et les requêtes que je dois réaliser :
1-La moyenne générale pour chaque spécialité ?
2- La moyenne générale pour chaque étudiant
Donnez moi les reponses svp .
Je debute dans le sql et je ne trouve pas les reponses
Voici mes tables :
Etudiant( Matricule, Nom,Prenom)
Spécialité( Matricule,Specialité)
Note( Matricule,Note,Module)
Et les requêtes que je dois réaliser :
1-La moyenne générale pour chaque spécialité ?
2- La moyenne générale pour chaque étudiant
Donnez moi les reponses svp .
6 réponses
les gars ont raison
prochainement essaie de faire un effort et propose une solution pour que l'on te dise si c'est juste ou non
tout compte fais voici un bref aperçu de ce que je pense moi de ton systeme (MLD)
Etudiant(etud_matricule, etud_nom, etud_prenom, spec_id)
Specialite(spec_id, spec_libelle)
Note(note_id, etud_matricule, modu_id, note_valeur)
module(modu_id, modu_libelle)
1. Requete : La moyenne générale pour chaque spécialité
2. Requete : La moyenne générale pour chaque étudiant
ici j'espère bien que tu connais la definition de AVG, la table module n'est pas obligatoire ici juste pour te montrer d'où proviens la clef modu_id qui se trouve dans la table Note.
les clef primaires sont soulignées si tu retrouves le même nom dans l'autre table il s'agit de la clef secondaire (les deux tables sont liées) essaie de reproduire le MCD chez toi et tu veras les migrations des clefs.
cdlt.
prochainement essaie de faire un effort et propose une solution pour que l'on te dise si c'est juste ou non
tout compte fais voici un bref aperçu de ce que je pense moi de ton systeme (MLD)
Etudiant(etud_matricule, etud_nom, etud_prenom, spec_id)
Specialite(spec_id, spec_libelle)
Note(note_id, etud_matricule, modu_id, note_valeur)
module(modu_id, modu_libelle)
1. Requete : La moyenne générale pour chaque spécialité
SELECT spe.spec_libele, AVG(not.note_valeur) as moyenne FROM Specialite spe, Etudiant etu, Note not WHERE spe.spec_id = etu.spec_id AND etu.etud_matricule = not.etud_matricule GROUP BY spe.spec_libelle
2. Requete : La moyenne générale pour chaque étudiant
SELECT etu.etud_nom, etu.etud_prenom, AVG(not.note_valeur) as moyEtud FROM Etudiant etu, Note not WHERE etu.etud_matricule = not.etud_matricule GROUP BY etu.etud_nom, etu.etud_prenom
ici j'espère bien que tu connais la definition de AVG, la table module n'est pas obligatoire ici juste pour te montrer d'où proviens la clef modu_id qui se trouve dans la table Note.
les clef primaires sont soulignées si tu retrouves le même nom dans l'autre table il s'agit de la clef secondaire (les deux tables sont liées) essaie de reproduire le MCD chez toi et tu veras les migrations des clefs.
cdlt.
Slt
à mon avis tu auras une de ces teribles redondances dans ta tables spécialité
pourquoi t'aurais pas utiliser la clef primaire de la table spécialité comme clef etrangere dans la table étudiant? et là la premiere requetes aurait été aussi facile
à mon avis tu auras une de ces teribles redondances dans ta tables spécialité
pourquoi t'aurais pas utiliser la clef primaire de la table spécialité comme clef etrangere dans la table étudiant? et là la premiere requetes aurait été aussi facile
Salut,
Je veux garder l'exercice tel qu'il est , je ne veux rien changer
1-La moyenne generale pour chaque specialite:
SELECT ETUDIANT.maticule,ETUDIANT.nom, ETUDIANT.prenom,SPECIALITE.matricule,SPECIALITE.specialite,
AVG ( note) AS Moyennegenerale
FROM ETUDIANT, NOTE ,SPECIALITE
GROUP BY SPECIALITE.matricule,SPECIALITE.specialite;
2-La moyenne generale pour chaque etudiant:
SELECT ETUDIANT.maticule,ETUDIANT.nom, ETUDIANT.prenom,AVG ( Moyennegenerale)
FROM Moyennegenerale
GROUP BY ETUDIANT.maticule,ETUDIANT.nom, ETUDIANT.prenom;
Si c'est faux ,donnez moi le vrai svppppppppppppppp
Je veux garder l'exercice tel qu'il est , je ne veux rien changer
1-La moyenne generale pour chaque specialite:
SELECT ETUDIANT.maticule,ETUDIANT.nom, ETUDIANT.prenom,SPECIALITE.matricule,SPECIALITE.specialite,
AVG ( note) AS Moyennegenerale
FROM ETUDIANT, NOTE ,SPECIALITE
GROUP BY SPECIALITE.matricule,SPECIALITE.specialite;
2-La moyenne generale pour chaque etudiant:
SELECT ETUDIANT.maticule,ETUDIANT.nom, ETUDIANT.prenom,AVG ( Moyennegenerale)
FROM Moyennegenerale
GROUP BY ETUDIANT.maticule,ETUDIANT.nom, ETUDIANT.prenom;
Si c'est faux ,donnez moi le vrai svppppppppppppppp
Slt je veux bien t'aider mais je ne trouve pas comment faire la jointure entre la table spécialité et note
et de plus les clef des tables ne sont pas claire. que signifie MATRICULE c'est la clef de quelle table? ou bien MATRICULE indique la clef de chaque table? be vraiment le MLD n'est pas claire pour moi.
et les requête que tu as donné plus haut ben je ne pense pas trop elle te donneront des résultats éronnés car il y a risque de produit cartésien que de jointure. c'est le pourquoi je demande de revoir le système
la plus part des erreur de programme ne sont pas du à l'incompétence des programmeurs mais à la mauvaise spécification des concepteurs. si le programme est mal conçu ben probablement nous auront des résultats faux. ton modèle ne te permet pas de répondre à tes questions (du moins pour moi). revoie le modèle et tu auras une réponse juste
dsl pour le speech.
cdlt.
et de plus les clef des tables ne sont pas claire. que signifie MATRICULE c'est la clef de quelle table? ou bien MATRICULE indique la clef de chaque table? be vraiment le MLD n'est pas claire pour moi.
et les requête que tu as donné plus haut ben je ne pense pas trop elle te donneront des résultats éronnés car il y a risque de produit cartésien que de jointure. c'est le pourquoi je demande de revoir le système
la plus part des erreur de programme ne sont pas du à l'incompétence des programmeurs mais à la mauvaise spécification des concepteurs. si le programme est mal conçu ben probablement nous auront des résultats faux. ton modèle ne te permet pas de répondre à tes questions (du moins pour moi). revoie le modèle et tu auras une réponse juste
dsl pour le speech.
cdlt.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Maintenant j'ai bien compri. Merci pour tout, j'avais franchement pas pensé etre aide par qqn de cette manière,pour un debutant comme moi.
C'est sur que vous etes un expert dans la matiere .Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii mille fois william7007.
cordialement.