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 :

La moyenne d'un élève


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 15
    Par défaut La moyenne d'un élève
    j'ai 5 tables ; chacune d'elle est reliée avec l'autre:

    inscription(numinsc,nomprenom,IDniveau)

    niveau(IDniveau,libelle)

    matiere(IDmat,libellemat,Idunite,coef)

    evaluation(numinsc,Idmat,note,observation)

    unite(IDunite,libelleunite,

    je veux une requête qui permet d'afficher la moyenne d'un élève donné (Numinsc) dans une unité donnée (libelleunite).
    Bon moi j'ai essayé de créer la requête qui permet d'afficher les notes de chaque élève dans tous les matières avec une autre colonne qui calcule coef*note, mais je sais pas comment calculer la moyenne de chaque élève dans une unité qui contient bien sur un tel nombre de matières,c'est un peu difficile,:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select inscription.NumInsc,nom_prenom,sexe,inscription.annee_scolaire,niveau.libniveau,matiere.libmatiere,note,(note*coef)as'note*coef' from inscription
    inner join niveau on inscription.IDniveau=niveau.IDniveau
    inner join evaluation on inscription.NumInsc=evaluation.NumInsc
    inner join matiere on evaluation.IDmat=matiere.IDmat
    order by inscription.NumInsc
    aidez moi svp,
    cordialement
    hajer.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 434
    Par défaut
    Bonjour,
    AVG renvoie la moyenne d'une valeur, donc tu peux faire ainsi:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT inscription.NumInsc,nom_prenom,inscription.annee_scolaire,matiere.libmatiere,avg(note) AS Moyenne FROM inscription
    INNER JOIN niveau ON inscription.IDniveau=niveau.IDniveau
    INNER JOIN evaluation ON inscription.NumInsc=evaluation.NumInsc
    INNER JOIN matiere ON evaluation.IDmat=matiere.IDmat
    group by inscription.NumInsc,nom_prenom,inscription.annee_scolaire,matiere.libmatiere
    ORDER BY inscription.NumInsc

    Tatayo.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 15
    Par défaut
    merci,
    mais la moyenne dans ce cas ne se calcule pas comme ça!!(avg(note))
    car chaque matière a un coefficient donc ne pas oublier de multiplier chaque note avec son coefficient et de diviser ensuite la somme sur la somme des coefficients ça veut dire que la moyenne d'un élève dans l’unité français par exemple est égale à : (n1*coef1+n2*coef2+n*coef n)/coef1+coef2+coef n sachant que n1 et coef1 est la note et le coef concernant la matière 1 et n2....
    car chaque unité peut englober plusieurs matières.
    la moyenne dans ce cas est un peu plus difficile que avg(note),
    je pense que tu comprends...!!

  4. #4
    Membre éprouvé Avatar de tfc3146
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2009
    Messages : 79
    Par défaut
    Bonjour,
    Et si vous essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SUM(note*coef)/SUM(coef)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2010
    Messages : 15
    Par défaut Grammaire, orthographe
    oui j'ai déjà essayé cette formule mais ça ne marche pas, voilà le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select inscription.NumInsc,nom_prenom,sexe,inscription.annee_scolaire,niveau.libniveau,unite.libunite,matiere.libmatiere,note,(note * coef)as'note*coef',(sum(note * coef)/sum(coef )) as 'moy'from inscription
    inner join niveau on inscription.IDniveau=niveau.IDniveau
    inner join evaluation on inscription.NumInsc=evaluation.NumInsc
    inner join matiere on evaluation.IDmat=matiere.IDmat
    inner join unite on matiere.IDunite=unite.IDunite
    where unite.libunite like 'français'  and   inscription.NumInsc like '100'                             
    group by inscription.NumInsc,nom_prenom,sexe,inscription.annee_scolaire,niveau.libniveau,matiere.libmatiere,note,coef,unite.libunite
    je ne sais pas où est le problème, mais la moyenne est incorrecte

  6. #6
    Membre éprouvé Avatar de tfc3146
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Février 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2009
    Messages : 79
    Par défaut
    je sais pas ou est le probleme,mais la moyenne est incorrecte
    Pour moi ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT *
    FROM MATIERE
     
     
    MAT	NOTE	COEF
    Francais	10	4
    Anglais	11	3
    Espagnol	2	8
    Philo	3	4
    Et ce qui donne la bonne moyenne : je sais ma moyenne ne vole pas haut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT SUM(note*coef)/SUM(coef)
    FROM MATIERE
     
    SUM(NOTE*COEF)/SUM(COEF)
    5,31578947368421052631578947368421052632

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

Discussions similaires

  1. Requete moyennes mensuelles
    Par bdkiller dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/09/2004, 10h43
  2. probleme de moyenne
    Par prez dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/08/2004, 17h38
  3. [SGBD] Pour moyenne base avec SQL ?
    Par PyRoFlo dans le forum Bases de données
    Réponses: 10
    Dernier message: 13/03/2004, 18h54
  4. Réponses: 3
    Dernier message: 18/05/2003, 00h16

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