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 :

Moyenne pondérée


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 84
    Points : 68
    Points
    68
    Par défaut Moyenne pondérée
    Bonjour à tous,

    Je trime actuellement pour réussir à faire une moyenne pondérée... ça semble tout bête mais c'est loin d'être évident !

    Voici les tables :
    Partiel = {ID_Partiel, #ID_UE, Note, Coefficient} ;
    UE = {ID_UE, Libellé} ;

    Je voudrais calculer la moyenne pondérée générale d'abord, puis de chaque UE ensuite... Help me please !!!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    j'ai rien pour tester mais je dirais un truc comme ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select sum(a.point)/sum(a.coefficient) moyenne, libellé 
    from (select id_ue, note*coefficient point, coefficient from partiel) a,UE
    group by a.id_ue
    where ue.id_ue=a.id_ue

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 84
    Points : 68
    Points
    68
    Par défaut
    Non justement j'ai essayé moult solutions de ce genre mais à chaque fois j'ai la même :

    "les fonctions de calcul multilignes ne sont pas autorisées en-dehors des clauses having"

    (je précise que j'ai remplacé ton where par ce qui me semblait etre un having)...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 163
    Points : 80
    Points
    80
    Par défaut
    t'as essayé sans remplacer aussi?
    autrement pour ma part faudra attendre lundi parce que j'ai pas de sql sous la main.

  5. #5
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    salut.
    (Sous MS SQL SERVER)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    DECLARE @Partiel TABLE (ID_Partiel Int, ID_UE Int, Note Decimal(10,4), Coefficient Decimal(10,4) ) 
    DECLARE @UE TABLE(ID_UE Int, Libelle Varchar(50) )
     
    INSERT @UE VALUES( 1, 'Math' )
    INSERT @UE VALUES( 2, 'Physique' )
    INSERT @UE VALUES( 3, 'Bio' )
     
    INSERT @Partiel VALUES( 10, 1, 15, 10 )
    INSERT @Partiel VALUES( 11, 1, 10, 1 )
     
    INSERT @Partiel VALUES( 20, 2, 5, 2 )
    INSERT @Partiel VALUES( 21, 2, 9, 1 )
     
    INSERT @Partiel VALUES( 30, 3, 12, 1 )
    INSERT @Partiel VALUES( 31, 3, 14, 1 )
     
    SELECT Sum( Note * Coefficient )/Sum(Coefficient) As MoyenneGenerale FROM @Partiel P
     
     
    SELECT M.Libelle, N.Moyenne
      FROM (
    		SELECT P.ID_UE, Sum( Note * Coefficient )/Sum(Coefficient) As Moyenne
    		  FROM @Partiel P
    		  GROUP BY P.ID_UE
      ) N
      INNER JOIN @UE M
        ON ( M.ID_UE = N.ID_UE )

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 84
    Points : 68
    Points
    68
    Par défaut
    SELECT Sum( Note * Coefficient )/Sum(Coefficient) As MoyenneGenerale FROM @Partiel P
    C'est ce que j'ai tenté en premier mais apparament ça plait pas pour la raison que j'ai citée dans mon précédent post...

    Merci quand même de m'avoir donné une réponse si complète !

  7. #7
    Membre habitué
    Inscrit en
    Mars 2004
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 126
    Points : 151
    Points
    151
    Par défaut
    salut.

    C'est quel SGBD? C'est quand même une fonctionnalité primaire!

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 84
    Points : 68
    Points
    68
    Par défaut
    Je développe sous Windev mais j'ai plutot l'impression que c'est un problème de construction de la requête ?

Discussions similaires

  1. [requete] Moyenne pondérée
    Par Mou dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/05/2007, 17h47
  2. [Access] Comment faire un moyenne pondérée dans une requete ?
    Par megapacman dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2007, 09h23
  3. Réponses: 4
    Dernier message: 28/07/2006, 08h31
  4. Requête sql, moyenne pondérée
    Par ouiffi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/07/2006, 11h03
  5. URGENT : Moyenne pondéré?
    Par cquadjul dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/04/2006, 19h08

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