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 :

Moyennes de notes


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Moyennes de notes
    Bonjour a tous,
    Je sollicite votre aide pour une requête SQL qui me pose problème depuis 3 jours.
    Cette requete a pour but de faire une moyenne de notes.
    Mes notes sont répartis en quatre trimestres et la moyenne que je souhaite réaliser se fait avec la note du quatriéme trimestre de l'année N et les notes des 1er, 2éme et 3éme trimestre de l'année N+1.
    Comme vous pouvez le voir j'arrive a obtenir séparément les notes des trimestres 1,2 et 3 en utilisant la condition suivante dans ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Round(Avg(Somme_des_notes),2), Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee
    FROM Somme_des_notes
    WHERE Somme_des_notes.eval_annee=2009 And Somme_des_notes.eval_trim<=3 
    GROUP BY Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee;
    J'arrive également a obtenir la note du trimestre 4 de l'année N
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Round(Avg(Somme_des_notes),2), Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee
    FROM Somme_des_notes
    WHERE Somme_des_notes.eval_annee=2008 And Somme_des_notes.eval_trim=4
    GROUP BY Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee;
    Je souhaiterais réussir a grouper les deux en même temps pour que ma moyenne se fasse avec les 4 notes, une sorte de groupe dans le where ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT Round(Avg(Somme_des_notes),2), Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee
    FROM Somme_des_notes
    WHERE (Somme_des_notes.eval_annee=2009 And Somme_des_notes.eval_trim<=3) 
    ??? (Somme_des_notes.eval_annee=2008 And Somme_des_notes.eval_trim=4)
    GROUP BY Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee;
    J'espère avoir été clair ,merci de vos réponses

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Quel est votre SGBD ?

    Avez-vous essayé de mettre un OR ?
    Il faudra alors certainement enlever le eval_annee du group by, et utiliser une fonction MAX ou MIN au niveau du select selon l'année que vous voulez voir apparaître.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Bonjour et merci Waldar

    Je suis sous Access et la solution était effectivement d'utiliser un OR et de supprimer eval_annee du GROUP BY
    J'avais bien essayer d'utiliser le OR mais en oubliant d'enlever eval_annee du GROUP BY.

    La solution donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Round(Avg(Somme_des_notes),2), Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve, Somme_des_notes.eval_annee
    FROM Somme_des_notes
    WHERE (Somme_des_notes.eval_annee=2009 And Somme_des_notes.eval_trim<=3) 
    OR (Somme_des_notes.eval_annee=2008 And Somme_des_notes.eval_trim=4)
    GROUP BY Somme_des_notes.nom_eleve, Somme_des_notes.prenom_eleve;
    Merci cela me dépanne bien

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

Discussions similaires

  1. moyenne des notes, min, max
    Par abbaplatin dans le forum C++Builder
    Réponses: 4
    Dernier message: 31/12/2018, 14h35
  2. [Débutant] Calcul moyenne 3 notes
    Par kojima dans le forum VB.NET
    Réponses: 14
    Dernier message: 04/12/2014, 12h43
  3. Calcul moyenne des notes en perl
    Par Contreras dans le forum Langage
    Réponses: 1
    Dernier message: 22/11/2011, 14h00
  4. Affichage des moyennes des notes
    Par ifaza dans le forum Cognos
    Réponses: 0
    Dernier message: 17/11/2011, 22h55
  5. Calcul de note puis moyenne
    Par kOrt3x dans le forum Ada
    Réponses: 7
    Dernier message: 06/11/2006, 10h24

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