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

SQL Oracle Discussion :

Problème avec les fonctions


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 75
    Points : 53
    Points
    53
    Par défaut Problème avec les fonctions
    Bonjour,

    Galérant vraiment sur la même problématique depuis des jours je sollicite votre aide !
    Je vous explique, comme vous pouvez le voir ci-dessous j'ai une table TPMatiere qui regroupe des notes et matières sur plusieurs épreuves passé par un groupe d'élève. Et dans l'autre table TPNotation j'ai le codeMatiére, la matière, coefficient cc (contrôle continu) et coef exam.

    Le but du jeux, et de récupérer toutes les lignes pour un étudiant donnée, le code de la matière, ainsi que la note obtenue par cet élève pour chacune des épreuves passais.
    Le problème et que cette note, doit tenir compte des coefficients de contrôle continu et d'examen définis pour la matière en question, sachant aussi que je peux voir des valeurs nulles pour les notes des étudiants (notes Null remplacer par NVL et 0).


    Voici la structure et exemple de données de la table TPMatière représenté ci-dessous :
    Nom : Table_TPMatiere.png
Affichages : 112
Taille : 15,0 Ko

    Voici la structure et exemple de données de la table TPNotation représenté ci-dessous :
    Nom : Table_TPNotation.png
Affichages : 112
Taille : 24,1 Ko

    Ma question est doubles,
    - Dans un premier temps, pourriez-vous m'aider à résoudre cette problématique car pour le moment j'en suis incapable ?.

    -Dans un second temps pourriez-vous m'expliquer la démarche adopté pour résoudre cette problématique, mais aussi quelle approche je peux adopter à l'avenir pour résoudre ce type de problématique sachant que j'éprouve beaucoup de difficulté sur les calcul combinant des fonctions d'agrégation (pour moi ces le pire !) ?

    Par ailleurs merci de me fournir quelques sources et liens utiles si vous disposez de cela.

    Je vous remercie pour votre compréhension, et par avance merci de votre aide.

  2. #2
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Si votre but est juste d'avoir la note par matière, ce n'est pas très compliqué.
    (Ca se complique un peu plus si vous voulez la note final de l'élève en fonctione de chaque coéfficient de matière.)

    Il n'y a dans ce cas aucun besoin de fonction d'agrégation, à moins que qu'un élève puisse avoir plusieurs note sur une même matière, ce qui n'apparait pas dans votre jeu de donnée (et dans ce cas, ce qui suit ne sera pas tout à fait juste. )


    Ca donnera donc quelque chose de la sorte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select	 numetud
    		,libelle
    		,nvl(notecc,0)
    		,coefcc
    		,nvl(noteexam,0)
    		,coefexam
    		,nvl(notecc,0)*coefcc + nvl(noteexam,0) * coefexam as note_natiere
    from TPMatiere 
    inner join TPNotation on codematiere = codemat
    Vous avez ici pour chaque etudiant et chaque matière, sa note.
    Pas besoin normalement de faire de group by dans ce cas précis.

    Le seul calcule à faire est celui de la moyenne : "somme de note*coef" (niveau math 3ème je pense )

  3. #3
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 75
    Points : 53
    Points
    53
    Par défaut
    Je te remercie pour ta réponse "bstevy"

    Effectivement s'était bien le calcul de la moyenne qu'il fallait faire et comme tu le dis si bien cela doit s'apprendre en 3éme : "somme de note*coef" (niveau math 3ème je pense ).

    Et j' accepte volontiers cette remarque car juste (personnellement je me trouve vraiment null sur les requêtes mélangeant des calculs) ! Mais sincèrement excuse moi, mais j'ai vraiment besoin de comprendre comment fonctionne les calculs sur ce type de requête (*, /, +, -).

    Tu veux bien m'aider à comprendre, car si j'essaye de décortiquer le bout de requête ci-dessous (calcul) en ne prenant que le numetud = 1 pour les Mathématique le résultat obtenu me semble vraiment bizarre :
    nvl(notecc,0)*coefcc + nvl(noteexam,0) * coefexam as note_natiere
    18 * 0.25 + 20 * 0.75 = 19.5

  4. #4
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    Citation Envoyé par jelmouss Voir le message
    le résultat obtenu me semble vraiment bizarre :


    D'où est ce qu'il est bizarre ?
    Tu as deux notes :
    une en controle continue = 18
    une en exam = 20

    Donc exam a un coeff de 75%, donc forcément ton controle continue a un coeff de 25% (sinon tu dépasses les 100%)
    c'est les 0.75 et 0.25 que tu trouves dans la colonnes des math.
    ca veut dire que si tu compte une fois le controle continue (1/4=0.25), alors tu comptes 3 fois la note des exam (3/4=0.75)
    Donc ton calcule peut s'ecrire de plusieurs manières : 18*1/4 + 20 * 3/4 = (18*1 + 20*3)/4 = 18*0.25 + 20*0.75 = (18 +20 +20 +20)/4
    C'est autant de facon d'écrire le calcule fait précédement, chacun étant strictement équivalent et égale. Tu choisis celui qui te parle le plus.

    Apres, tu te poses peut etre la question de l'utilité de ta colonne coefficient (ou l'on retoruve pour math, la valeure 4)
    Ici, il s'agit d'un coefficient par rapport aux autre matières. C'est à dire que là où la moyenne des maths (19.4) sera comptée 4 fois, celle du marketing ne sera compté que deux fois.
    La formule à ce niveau là pour avoir une moyenne sur 20 sera : somme des (moyenne * coeff) / somme des coeff

    Mais si tu veux plus d'explication la-dessus, je te conseil plutot le forum mathématique.

  5. #5
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 75
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    Désolé de ne répondre que maintenant.
    Quoiqu'il en soit je te remercie fortement pour ton soutiens et tes quelques conseils. (Je vais revoir un peu mes math au passage.)

    Cordialement.

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

Discussions similaires

  1. Problèmes avec les fonctions et replace
    Par Tommyl dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 01/12/2006, 21h34
  2. Problème avec les fonctions
    Par gizida dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/07/2006, 14h15
  3. Réponses: 2
    Dernier message: 10/05/2005, 10h58
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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