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

MS SQL Server Discussion :

la moyen des champs sur ligne


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut la moyen des champs sur ligne
    salut tout le monde,
    j'ai le probleme suivant j'ai un ensemble de champs dans la meme table et je voudrais récuperer pour chaque ligne la moyenne de ces champs
    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    declare cr cursor
     FOR SELECT sum(tb.m5+tb.m6+tb.m7)as dd ,
                avg(tb.m5+tb.m6+tb.m7) 
         FROM tb
         group by tb.equi
    OPEN cr
    FETCH NEXT FROM cr
    WHILE @@FETCH_STATUS = 0
    BEGIN
        FETCH NEXT FROM cr
    END
    CLOSE cr
    DEALLOCATE cr
    le resultat de ce code la moyenne = sum
    pouvez vous m'aider svp.
    Mrci

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 40
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    l'utilisation de la fonction AVG n'est-il pas de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AVG(arg1, arg2, ..., argn)
    et non pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AVG(arg1+arg2+...+argn)

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    resalut,
    non ca marche pas
    Merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Si tous vos champs sont renseignés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     SELECT m5,m6,m7, (m5+m6+m7)/3 
     FROM tb
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  5. #5
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    Resalut,
    je m'execuse j'etais sorti,facade ca marche mais pas si un des champs contient le (Null)
    y a t il une autre solution
    Merci.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 84
    Points
    84
    Par défaut Il faut gérer le null
    Bonjour,
    Je revient sur la solution de Fadace et j'ajoute la gestion du null :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT m5,m6,m7, (isnull(m5,0)+isnull(m6,0)+isnull(m7,0))/3
     FROM tb

  7. #7
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    resalut,
    j'ai essayer cette methode mais ce n'ai pas juste car le probleme reste au niveau de la division
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT m5,m6,m7, (isnull(m5,0)+isnull(m6,0)+isnull(m7,0))/3 
     FROM tb
    si m5=0 et m6=1 et m7=0
    le resultat sera 1/3 et c faut la valeur doit etre =1
    Merci

  8. #8
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 84
    Points
    84
    Par défaut AVG est pour la moyenne
    ReBonjour,
    AVG est pour la moyenne, et la moyenne des trois champs est bien 1/3 et non 1.
    Si tu cherches une autre valeur dit nous laquelle pour nous éclaircir les pistes

  9. #9
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    resalut,
    je vous explique un peu ,je ne veux que la moyenne des champs different du null ou de zero
    Merci

  10. #10
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Points : 60
    Points
    60
    Par défaut
    tu peux toujours utiliser la fonction CEILING
    si tu lui rentre une fraction il te renvoiera l'entier suppérieur
    donc Ceiling(1/3 ) donnera 1

  11. #11
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 84
    Points
    84
    Par défaut Réponse tirée par les cheveux
    Bonjour,
    La piste que j'ai est un peu tirée par les cheveux mais il faut dire aussi que ta moyenne a des caprices

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m5,m6,m7,
                ( case (isnull(m5,0)+isnull(m6,0)+isnull(m7,0)) when 0 then 0
                      else (isnull(m5,0)+isnull(m6,0)+isnull(m7,0)) / (
                                  ( case isnull(m5,0) when 0 then 0 else 1 end ) +
                                  ( case isnull(m6,0) when 0 then 0 else 1 end ) +
                                  ( case isnull(m7,0) when 0 then 0 else 1 end )
                  end )
     FROM tb

  12. #12
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 58
    Points : 60
    Points
    60
    Par défaut
    oups désolé j'avais lu trop vite

  13. #13
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 70
    Points : 84
    Points
    84
    Par défaut C'est bon ?
    J'espère au mois que ça fait l'affaire.

  14. #14
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    345
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 345
    Points : 90
    Points
    90
    Par défaut
    Bonjour,
    j'ai trouve une solution hier avant de lire ta requete Youssef TAZI SIDQUI
    via mon programme ,
    mais quand j'ai essaye ta solution est ca marche je vous remercie infiniment je voulais une et j'en ai 2 que dire de plus MERCI.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  2. désactiver des champs sur le mainmenu
    Par omarius dans le forum Débuter
    Réponses: 2
    Dernier message: 19/05/2009, 13h36
  3. remplir des champs sur internet
    Par Armadeus dans le forum Réseau/Web
    Réponses: 6
    Dernier message: 02/03/2009, 16h29
  4. Réponses: 2
    Dernier message: 08/06/2007, 18h00
  5. Afficher des champs sur base d'un click d'un bouton radio
    Par marxan dans le forum Coldfusion
    Réponses: 1
    Dernier message: 31/05/2007, 19h22

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