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

Développement SQL Server Discussion :

Calcul de pourcentage via requête


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 80
    Points
    80
    Par défaut Calcul de pourcentage via requête
    Bonjour,

    Je tente de calculer un pourcentage mais ca ne fonctionne pas
    Voici ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT (((SELECT count (X.[NO CLIENT]) as TotalMoinsUn FROM X WHERE X.[AGE JOUR] <='365')/(SELECT count (X.[NO CLIENT]) as Total FROM X)*100)) as Pourcentage
    La réponse devrait être (0.0017998560115191 * 100) = 0.17

    Présentement j'obtiens zéro.
    Je croyais qu'en mettant le résultat 'Pourcentage' en décimal que j'aurais le résultat mais j'obtiens toujours zéro.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Ouch bien dégueulasse comme requête... Tu as eu un prix sur les parenthèse ?
    Il faut transtyper en decimal, c'est le rôle du 100. qui est de type decimal avec son point !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT 100. * SUM(CASE WHEN [AGE JOUR] <= 365 THEN 1 ELSE 0 END) / COUNT(*) FROM X

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 80
    Points
    80
    Par défaut
    Merci pour la réponse.
    Je suis débutant LOL
    Mais le total me donne 100%
    Ce qui est impossible.

  4. #4
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 80
    Points
    80
    Par défaut
    C'est bon ca fonctionne!

    Merci beaucoup!!|!

  5. #5
    Invité
    Invité(e)
    Par défaut
    Sans tes données, je ne peux pas vraiment deviner...

    C'est quoi le type de ta colonne AGE JOUR ?

    Ça donne quoi ces requêtes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM(CASE WHEN [AGE JOUR] <= 365 THEN 1 ELSE 0 END) from X
    SELECT COUNT(*) FROM X
    SELECT COUNT(*) FROM X WHERE [AGE JOUR] <= 365

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Le langage SQL est fortement typé. Si vous faites des calculs avec des entiers, les calculs seront faits en entier et non pas avec des nombres en virgule flottante. Ainsi
    donne 0.
    Maintenant si vous faites des calculs sur des nombre réels vous obtiendrez des nombres à virgule flottante :
    Donne 0.5

    Or un COUNT renvoie toujours un entier !

    Une autre simplification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 100.0 * COUNT (X.[NO CLIENT]) / (SELECT count (X.[NO CLIENT]) 
                                            FROM X) as Pourcentage 
    FROM   X 
    WHERE  X.[AGE JOUR] <='365'
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 80
    Points
    80
    Par défaut
    Merci beaucoup pour les détails!
    C'est super gentil d'avoir prit du temps pour me répondre.
    Bonne journée!

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

Discussions similaires

  1. Calcul de pourcentage via Select imbriqués
    Par _Tido_ dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/09/2011, 15h24
  2. calcul de pourcentage dans une requête
    Par redoran dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/11/2010, 07h33
  3. [AC-2007] Calcul de pourcentage dans une requête
    Par Nephyline dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 05/10/2009, 15h31
  4. Calculer un pourcentage avec sous-requêtes
    Par nadsky dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 30/10/2008, 14h55
  5. calcul de pourcentage dans requête
    Par Eruil dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/07/2007, 15h29

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