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

WinDev Discussion :

calcul moyenne avec gestion du null


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut calcul moyenne avec gestion du null
    Bonjours à tous
    comme l'indique le titre je veux calculer la moyenne pour chaque ligne d'enregistrement.
    -j'ai deux fichier (c1) et (notes) avec (NULL supporté) reliée
    -l'enregistrement des notes se fait en table mémoire alimenter avec requête par le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichierVersTableMémoire(MoiMême,REQ_notes)
    -l'ajout des notes avec le code suivant:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    i est un entier
     
    // Mise à jour 
    POUR i=1 _A_ TableOccurrence(TABLE_arabe)
    	TableSelectPlus(TABLE_arabe,i)
     
    	// Recherche l'enregistrement
    	HLitRecherchePremier ( notes, Ninsc, TABLE_arabe.COL_ninsc)
     
    	SI HTrouve () ALORS
    		notes.Ninsc =TABLE_arabe.COL_ninsc[i]     	
    		notes.CHARB=TABLE_arabe.COL_SansNom1[i]     	
    		notes.STARB=TABLE_arabe.COL_SansNom2[i]     	
    		notes.TARB=TABLE_arabe.COL_SansNom3[i]   
    		notes.DARB=TABLE_arabe.COL_SansNom4[i]
    		notes.Earb=TABLE_arabe.COL_SansNom5[i]
    		notes.Alarb=TABLE_arabe.COL_SansNom6[i]
    		notes.larb=TABLE_arabe.COL_SansNom7[i]
    		notes.tkt=TABLE_arabe.COL_SansNom8[i]
    		notes.tch=TABLE_arabe.COL_SansNom9[i]
    		HModifie (notes)
     
    	SINON
    		notes.Ninsc =TABLE_arabe.COL_ninsc[i]     	
    		notes.CHARB=TABLE_arabe.COL_SansNom1[i]     	
    		notes.STARB=TABLE_arabe.COL_SansNom2[i]     	
    		notes.TARB=TABLE_arabe.COL_SansNom3[i]   
    		notes.DARB=TABLE_arabe.COL_SansNom4[i]
    		notes.Earb=TABLE_arabe.COL_SansNom5[i]
    		notes.Alarb=TABLE_arabe.COL_SansNom6[i]
    		notes.larb=TABLE_arabe.COL_SansNom7[i]
    		notes.tkt=TABLE_arabe.COL_SansNom8[i]
    		notes.tch=TABLE_arabe.COL_SansNom9[i]
    		HAjoute(notes)
    	FIN
    FIN
    TableAffiche(TABLE_arabe,taCourantEnreg)
     
    TableAffiche(TABLE_Notes,taCourantEnreg)
    1-est_il possible de calculer de la moyenne sur ma tablemémoire avec gestion du null?
    2-si non comment le faire par programmation sur etat.

  2. #2
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    1-est_il possible de calculer de la moyenne sur ma tablemémoire avec gestion du null?
    Plusieurs manières de faire :

    1 - Tu modifies ta requête pour qu'elle ait une colonne de plus avec le calcul de la moyenne suivi d'un FichierVersTableMémoire()

    2 - Après le FichierVersTableMémoire() tu ajoutes une colonne à la table pour accueillir le calcul de la moyenne (par clone). Puis tu fais une boucle de parcours du résultat de ta requête et ligne par ligne tu comptes le nombre de note qui ne sont pas à null et tu somme les notes. Enfin tu calcules la moyenne de la ligne et l'enregistres dans la table

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    Bonjour Mr laurent30s
    j'ai essayé de calculer la moyenne en utilisant cette méthode :

    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
     
     
    ResNbColonne est un entier=TableOccurrence(TABLE_arabe,toAffichée) -3
    POUR TOUTE LIGNE DE TABLE_arabe
     
    	fes1 est un numérique=COL_SansNom1
    fes2 est un numérique=COL_SansNom2
    fes3 est un numérique=COL_SansNom3
    fes4 est un numérique=COL_SansNom4
    fes5 est un numérique=COL_SansNom5
    fes6 est un numérique=COL_SansNom6
    fes7 est un numérique=COL_SansNom7
    fes8 est un numérique=COL_SansNom8
    fes9 est un numérique=COL_SansNom9
    COL_SansNom10(fes1+fes2+fes3+fes4+fes5+fes6+fes7+fes8+fes9)/ResNbCone
     
    FIN
    le problème qu'il compte les colonnes vide aussi même en utilisant (toAffichée)
    sur l'aide (toAffichée)= Nombre de lignes non vides dans la partie visible de la table.

  4. #4
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,
    pourrais tu nous donner une image de tes fichiers d'analyse
    car il semble que tu perdes beaucoup en efficacité avec tes boucles.
    et cela nous permettrai de mieux comprendre ton problème

    BD

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    Merci
    voilà une image
    Images attachées Images attachées  

  6. #6
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    le problème qu'il compte les colonnes vide aussi même en utilisant (toAffichée)
    sur l'aide (toAffichée)= Nombre de lignes non vides dans la partie visible de la table.
    Normal dans la table les colonnes numériques auxquelles tu affectes une rubriques à null, ne se trouve pas à null mais à 0. Donc toutes les colonnes ont une valeur...

    Il y aurait une possibilité en déclarant les colonnes devant accueillir les notes comme des chaînes. Ainsi quand la valeur est à null, la chaine est vide "" sinon il y a la valeur y compris 0. Et dans ce cas on peut faire la différence...
    Ceci dit, je te déconseille cette méthode, tu vas t'embêter pour rien

    Donne nous ta requête ça sera le plus simple...

  7. #7
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Merci pour l'image.
    tu as aussi un problème de clé ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    qu est ce que je doit faire

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    je m'excuse
    voici un exemple de ma requête

    http://www.gulfup.com/?9KcPg3

  10. #10
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Y-a des trucs que j'ai du mal à comprendre dans ton analyse

    Déjà les rubriques Ninscr (clé doublon) dans les fichiers eleves et notes sont inutiles, il faut les supprimer ainsi que la liaison qui les utilise.

    Refait une liaison de eleves vers notes et valide sans rien changer.
    Normalement dans le fichier notes la rubrique IDeleves a été ajoutée et est utilisée pour la liaison.

    Si je comprend bien dans les rubriques lecture, grammaire et ecriture il y a les notes.
    Qui sont des numériques avec lesquelles tu veux faire des calculs.
    Alors pourquoi ces rubriques sont-elles déclarées en chaîne ?

    Enfin tu dis souhaiter calculer la moyenne en tenant compte des null, or dans ton exemple il n'y-a aucune valeur à null (je vais en placer mais j'espère que je serais dans ton contexte ???)

    Je vois dans le fichier notes une rubrique moyenne. C'est un calcul, normalement tu ne devrais pas avoir ce type de rubrique.
    Ça t'oblige à actualiser la moyenne à chaque modification de note avec le risque d'un oublie quelque part.
    Il est préférable de faire le calcul quand tu as besoin de l'afficher

    Ton analyse fixe les matière (le nombre et leur nom) donc tu ne pourras pas en rajouter facilement.
    D'autre part tu ne peut avoir qu'une seule note par matière et par élève. Est-ce comme ça que ça se passe dans la réalité ?

    Une analyse qui serait sans doute plus judicieuse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    +----------------+    +-------------------------+    +-----------------+
    |     eleves     |    |          notes          |    |    matieres     |
    +----------------+    +-------------------------+    +-----------------+
    | IDeleves  Auto |--->| IDnotes      Auto       |<---| IDmatiere  Auto |
    | Nom       Txt  |    | IDeleves     Num clé db |    | Nom        Txt  |
    | Prenom    Txt  |    | IDmatiers    Num clé db |    +-----------------+
    +----------------+    | Date_devoir  Date       |
                          | Note         Num        |
                          +-------------------------+
    Enfin bon, en l'état si tu ne changes rien, il suffit que tu places ce code dans l'initialisation de la table

    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
    nNo_lig, nNb_notes, nSomme_notes est un entier
     
    FichierVersTableMémoire(MoiMême,REQ_SansNom1)
     
    HLitPremier(REQ_SansNom1)
    TANTQUE PAS HEnDehors(REQ_SansNom1)
    	nNo_lig     += 1
    	// les Val c'est parce que tes rubriques sont des chaines
    	// si tu avais des numériques elles ne seraient pas nécessaire
    	nSomme_notes = Val(REQ_SansNom1.ecriture) + Val(REQ_SansNom1.grammaire) + Val(REQ_SansNom1.lecture)
    	// compte les notes qui ne sont pas à null  
    	nNb_notes    = 0
    	SI REQ_SansNom1.ecriture..Null = Faux ALORS
    		 nNb_notes += 1
    	FIN
    	SI REQ_SansNom1.grammaire..Null = Faux ALORS
    		nNb_notes += 1
    	FIN
    	SI REQ_SansNom1.lecture..Null = Faux ALORS
    		nNb_notes += 1
    	FIN
    	// enregistre la moyenne dans la table
    	TABLE_SansNom1.COL_SansNom7[nNo_lig] = nSomme_notes / nNb_notes	
    	HLitSuivant(REQ_SansNom1)
    FIN

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    Déjà les rubriques Ninscr (clé doublon) dans les fichiers eleves et notes sont inutiles, il faut les supprimer ainsi que la liaison qui les utilise.

    Refait une liaison de eleves vers notes et valide sans rien changer
    Numinscr= Numéro d'inscription de chaque élève est c'est nécessaire pour faire l'inscription
    -j'ai essayé de faire la liaison en utilisant IDeleves mais la requête me donne (si je coche inclure les eleves qui n'ont pas de notes) les enregistrements sans (nom+prenom+ninscr)
    -ou le contraire pas de notes
    *dans la réalité ont n'a les examens:
    1-controle continue (semestre1+semestre2) tous les niveaux (de 1 à 6)
    2-examen normalisé 1+examen normalisé2 (pour 6 niveau)
    -les profs font les devoirs est donnent la moyenne de chaque matière à la direction
    *pour les matières je veux les ajouter tous et c'est pourquoi je voulais faire la gestion du NULL si une matière n'est pas programmer pour certains niveaux

    *le code que tu m'a donné fais le calcul mais comme mon ancien code il compte tous les colonnes même les NULLS

    enfin Merci infiniment

  12. #12
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    le code que tu m'a donné fais le calcul mais comme mon ancien code il compte tous les colonnes même les NULLS
    Comme dans tes données il n'y avait pas de valeur à Null j'ai modifié tes données comme ci-après.
    Quand on lance le fenêtre les moyennes par élève se calculent bien dans la table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IDnotes     lecture     grammaire     ecriture     Moyenne calculée dans la table
    13          5           8             8            7   = (5+8+8)/3
    14          3           NULL          9            6   = (3+9)/2
    15          5           3             7            5   = (5+3+7)/3
    ou alors je n'ai pas compris ce que tu veux faire ???

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    je pense que je doit chercher une autre mithode.
    qu'est ce que vous me recommanderiez

  14. #14
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par hadaf Voir le message
    je pense que je doit chercher une autre mithode.
    qu'est ce que vous me recommanderiez
    Je récapitule ce que je t'ai envoyé avant...

    Dans le projet exemple que tu a joint à ton message #9
    Tu prends le code de mon message #10 que je replace ci-après et tu le places dans la section de code "Initialisation de la table"
    (à la place de "FichierVersTableMémoire(MoiMême,REQ_SansNom1)" qui y figure déjà

    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
    nNo_lig, nNb_notes, nSomme_notes est un entier
     
    FichierVersTableMémoire(MoiMême,REQ_SansNom1)
     
    HLitPremier(REQ_SansNom1)
    TANTQUE PAS HEnDehors(REQ_SansNom1)
    	nNo_lig     += 1
    	// les Val c'est parce que tes rubriques sont des chaines
    	// si tu avais des numériques elles ne seraient pas nécessaire
    	nSomme_notes = Val(REQ_SansNom1.ecriture) + Val(REQ_SansNom1.grammaire) + Val(REQ_SansNom1.lecture)
    	// compte les notes qui ne sont pas à null  
    	nNb_notes    = 0
    	SI REQ_SansNom1.ecriture..Null = Faux ALORS
    		 nNb_notes += 1
    	FIN
    	SI REQ_SansNom1.grammaire..Null = Faux ALORS
    		nNb_notes += 1
    	FIN
    	SI REQ_SansNom1.lecture..Null = Faux ALORS
    		nNb_notes += 1
    	FIN
    	// enregistre la moyenne dans la table
    	TABLE_SansNom1.COL_SansNom7[nNo_lig] = nSomme_notes / nNb_notes	
    	HLitSuivant(REQ_SansNom1)
    FIN
    Et là ça calcule la moyenne des notes pour chaque élève.
    La moyenne est calculée seulement sur les matières qui ont une note (pas à null)

    Dans ton fichier notes les données que tu as placée ne sont pas pertinentes pour faire le test.
    Il n'y a pas de valeur à null et les notes de toutes les matières d'un élève sont les même (8+8+8)/3=8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IDnotes     lecture     grammaire     ecriture
    13          8           8             8
    14          9           9             9
    15          5           5             5
    remplace certaine données comme je l'ai fait ci-dessous
    et quand tu lances la fenêtre tu verras que les calculs de moyennes sont correct y compris s'il y a une absence de note (Null pas 0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IDnotes     lecture     grammaire     ecriture     Moyenne calculée dans la table
    13          5           8             8            7   = (5+8+8)/3
    14          3           NULL          9            6   = (3+9)/2
    15          5           3             7            5   = (5+3+7)/3
    Si ça ne te convient pas c'est que je n'ai pas compris ce que tu veux
    et sans explication plus précise de ce que tu veux je ne pourrais pas t'aider...

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    bonjour

    pour comprendre ma situation je vais vous expliquez un peut de mon projet

    j'ai trois fichier jusqu’à maintenant :
    1-fichier élèves qui contiens les données des élèves ( tu ma aidé a faire une requête de classification et comptage sur ce fichier) .
    2-fichier profs qui contiens les données des profs
    3-fichier notes qui contiens les notes des élève selon les matières

    ma stratégie que je présume fiable (Corrige moi si je me trompe)
    +faire un fichier (élèves) pour chaque niveau (de 1 à 6)= 6 fichiers
    +faire un fichier (notes) pour chaque niveau (de 1 à 6)=6fichiers
    -le saisie des notes se feras par regroupement de tous les élèves de chaque niveau sur un seul table et par matières sélectionner avec requête*
    *ma requête relie deux fichiers (élèves et notes) pour but d'afficher sur ma table les noms des élèves.

    -je pense que si j'arrive à faire une requête qui calcul la moyenne de chaque ligne en respectant les NULLS je peut avoir les moyennes sur un état

    -je pense que tu vas vraiment me donner un leçon par ce que je sais que ma structure d'analyse :
    - n’est pas génial.
    - elle est bizarre.
    - est Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a que toi qui peut m'orienter vers le bon sens

  16. #16
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Multiplier les fichiers élèves et notes autant que de niveau est une mauvaise pratique.
    Il est préférable d'ajouter une rubrique niveau dans chacun des fichiers élèves et notes.
    Tu pourras trier dessus...

    Autre chose, as-tu pensé au changement d'année ?
    Tu vas faire comment ? Tu vas tout purger ? ça serait dommage...
    On peut éviter ça...

    La liste des fichiers qui me sembles nécessaires :
    Classe
    Prof
    Eleve
    Matiere
    Devoir (ou examen)
    Note

    Les relations :
    1 Prof d'1 Matière -----> Peut avoir plusieurs Classes
    1 Prof d'1 Classe ------> Peut avoir plusieurs Matières
    1 Matière d'1 Classe ---> Ne peut avoir qu'1 seul Prof

    1 Classe --------------> Peut avoir plusieurs Élèves
    1 Élève ---------------> Peut avoir plusieurs Classes (années différentes)
    1 Élève d'1 classe -----> Peut avoir plusieurs Notes (maxi 1 par par devoir de la classe à laquelle appartient l'élève)

    1 Classe --------------> Peut avoir plusieurs Devoirs
    1 Matière -------------> Peut avoir plusieurs Devoirs
    1 Devoir --------------> Peut avoir plusieurs Notes (maxi 1 par élève de la classe à laquelle appartient le devoir)

    Il peut ne pas y avoir de note pour un devoir auquel n'a pas participé un élève (le cas sans note)

    Ce qui donne :

    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
    +--------+    +---------------------+    +-----------+    +---------------+    +----------+
    |  Prof  |    |  ProfMatiereClasse  |    |  Classe   |    |  ClasseEleve  |    |  Eleve   |
    +--------+    +---------------------+    +-----------+    +---------------+    +----------+
    | IDProf |--->| IDProfMatiereClasse |<---| IDClasse  |--->| IDClasseEleve |<---| IDEleves |
    | Nom    |    | IDProf              |    | Nom       |    | IDClasse      |    | Nom      |
    | Prenom |    | IDMatiere           |    | Annee     |    | IDEleve       |    | Prenom   |
    | Prenom |    | IDClasse            |    | IDProf    |    |               |    |          |
    +--------+    +---------------------+    +-----------+    +---------------+    +----------+
                             A                     |                  |
                             |                     |                  |
                             |                     V                  V
                  +---------------------+    +-----------+    +---------------+
                  |       Matiere       |    |  Devoir   |    |     Note      |
                  +---------------------+    +-----------+    +---------------+
                  | IDMatiere           |--->| IDDevoir  |--->| IDNote        |
                  | Nom                 |    | IDClasse  |    | IDDevoir      |
                  |                     |    | IDMatiere |    | IDClasseEleve |
                  |                     |    | Date      |    | Note          |
                  +---------------------+    +-----------+    +---------------+
    Avec cette analyse tu devrais pouvoir afficher tout ce que tu as besoin... du moins je l'espère...

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    BONSOIR
    je m'excuse mais j du mal à comprendre quelque relations dans le schéma que tu m'a proposé sur la balise code:
    1-fichier prof
    2-fichier profmatiereclasses
    3-fichier classes
    à quoi sert le fichier (profmatiereclasses) est que c pour faire une relation entre trois fichier seulement ou il va porter des données.
    -si je veux donner a un prof une classe et une ou plusieurs matières comment faire et les enregistrées dans quel fichier

    je suis entrain maintenant de lire quelque PDF de Merise

  18. #18
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par hadaf Voir le message
    BONSOIR
    je m'excuse mais j du mal à comprendre quelque relations dans le schéma que tu m'a proposé sur la balise code:
    1-fichier prof
    2-fichier profmatiereclasses
    3-fichier classes
    à quoi sert le fichier (profmatiereclasses) est que c pour faire une relation entre trois fichier seulement ou il va porter des données.
    -si je veux donner a un prof une classe et une ou plusieurs matières comment faire et les enregistrées dans quel fichier

    je suis entrain maintenant de lire quelque PDF de Merise
    Le fichier ProfMatiereClasse est une association qui permet d'avoir une relation plusieurs à plusieurs entre les fichiers Prof, Matiere et Classe

    Grâce à ProfMatiereClasse tu peux par exemple avoir les listes :
    - Pour chaque prof la liste des classes et matières enseignées
    - Pour chaque classe la liste des profs et matières enseignées
    - Pour chaque matière la liste des profs et des classes (par qui et où la matière est enseignée)


    Il y a une autre association ClasseEleve qui permet d'avoir une relation plusieurs à plusieurs entre les fichiers Classe et Eleves

    Regarde ce guide qui explique les types de relation
    Regarde notamment la relation plusieurs à plusieurs
    http://sqlpro.developpez.com/cours/m.../?page=passage

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 157
    Points : 39
    Points
    39
    Par défaut
    je te remercie pour les efforts que tu déployés pour m'aider.
    pour avoir une vision claire de la structure de mon projet voilà un pdf qui montre la réalité de la vie scolaire .
    Images attachées Images attachées

  20. #20
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Octobre 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 254
    Points : 608
    Points
    608
    Par défaut
    Citation Envoyé par hadaf Voir le message
    qu est ce que je doit faire
    Il te suffit de faire une requête SELECT SUM(note)/COUNT(note)..

    SUM et COUNT ne tiennent pas compte des valeurs Null en SQL.

Discussions similaires

  1. Requete SQL avec gestion de NULL
    Par mail.spam dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 27/08/2012, 17h29
  2. Calcul moyenne avec coefficient
    Par dharth dans le forum Débuter
    Réponses: 14
    Dernier message: 17/07/2009, 19h10
  3. calcul moyenne avec champs vides
    Par omarpascal dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/11/2007, 08h35
  4. Calculer Moyenne avec un vecteur
    Par theserialkiller10 dans le forum C++
    Réponses: 5
    Dernier message: 20/11/2007, 21h23
  5. calculer une moyenne avec une requete externe
    Par allowen dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/01/2005, 16h02

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