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

Access Discussion :

afficher la moyenne de 4 champs en ligne


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 17
    Points
    17
    Par défaut afficher la moyenne de 4 champs en ligne
    dans une table j'ai 5 champs (Nom, conso2001, conso2002, conso2003, conso2004)
    je souhaiterais faire une requete qui calcul la moyenne des 4 champs conso.

    Je peux additionner les 4 champs et les diviviser par 4 :
    le problème c'est que si je n'ai pas entre de valeur dans un des champs conso, il me retourne une case vide.
    L'autre probleme c'est qu il se peut qu il n'y ait pas d'information pour un champs (pas de conso en 2001) : le résultat est donc faux vu qu il n'y a que 3 valeurs d'entrées et que je le divise par 4.

    Merci pour m'aider à solutionner mon problème.

    ex :
    Nom - Conso2001 -Conso2002 -Conso2003 -Conso2004
    toto -10- 12 -5 -7
    tata - pas de valeur - 5 - 4- 3

    Affichage desire :
    Nom - Moyenne
    toto - 8.5
    tata - 4

    Merci d'avance

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je proposerais ceci, mais il y a peut-être plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select nom,  (somme/nombre) as Moyenne from( SELECT Nom, -((Not IsNull([conso2001]))+(Not IsNull([conso2002]))+(Not IsNull([conso2003]))+(Not IsNull([conso2004]))) AS Nombre, IIf(IsNull([conso2001]),0,[conso2001])+IIf(IsNull([conso2002]),0,[conso2002])+IIf(IsNull([conso2003]),0,[conso2003])+IIf(IsNull([conso2004]),0,[conso2004]) AS Somme
    FROM Table2)
    Ok?

    Pierre Fauconnier

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faudrait tester si les champs sont remplis par une boucle, si le champ est rempli tu incrémentes une variable de +1 (en la mettant à 0 d'abord) et ensuite tu divises par ce nombre

    Starec

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Points : 108
    Points
    108
    Par défaut
    Si tu avait une table qui sapellerait conso. Tu pourrait avoir un champ annee et un champ nombre.
    Tu pourrait ensuite manipuler tes données beaucoup plus facilement.
    (Par exemple ne pas sélectionner ton champ lorsqu'il ne contient 0)
    Parce que un champ qui s'appelle conso2004 c'est pas normal puisque 2004 est une donnée.

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Comme le dit Kissmetoe, avec une table de trois champs

    Nom - Année - Conso

    C'est alors beaucoup plus simple. Tu crées une requête Selection avec regroupement sur le nom et moyenne du champ Conso
    Tu obtiens alors la requête sql suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Nom, Avg(Conso) AS Moyenne
    FROM t_Conso
    GROUP BY Nom
    Ok?

    Pierre Fauconnier

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 17
    Points
    17
    Par défaut
    Merci pour les informations.

    Je vais utiliser une table uniquement pour les consomations.

    Cependant je voudrais que la moyenne des conso figure sur l'état ou je résume l'ensemble.

    Le probleme : il ne veut pas m'afficher des données d'une table et d'une requete sur le meme etat

    Comment faire pour que dans mon etat j'ai l'ensemble des données de ma table Nom et la moyenne de conso qui est en relation?

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par regis94
    Je vais utiliser une table uniquement pour les consomations.
    Dans cette table, tu auras également un champ NOM. Crée alors une requête en unissant les deux tables sur base du champ NOM et base ton état sur cette requête

    Ok?

    Pierre Fauconnier

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/02/2011, 20h18
  2. Réponses: 9
    Dernier message: 25/03/2009, 13h45
  3. Afficher les données d'un champ sur une ligne
    Par white-angel dans le forum Access
    Réponses: 6
    Dernier message: 30/08/2006, 11h09
  4. la moyen des champs sur ligne
    Par nah_wah dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 04/08/2005, 11h45
  5. affiche date du jour dans champ texte
    Par pascal.cargouet dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 12/01/2005, 11h04

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