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 :

Afficher les nombres après la virgule


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Points : 0
    Points
    0
    Par défaut Afficher les nombres après la virgule
    Bonjour,

    Je veux afficher le total de la durée / 60 , tout marche bien mais il me retourne un nombre entier .

    par exemple j'ai SUM(DURE_MO) = 632

    si je la divise sur 60 elle devra me retouner 10,5333333333333
    mais elle me retoune juste 10

    Merci de votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     SELECT DATE_CALE ,SUM(DURE_MO) as duree FROM ARCH_TEMPS_MAINTENANCE GROUP BY DATE_CALE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      SELECT DATE_CALE ,(SUM(DURE_MO)/60) FROM ARCH_TEMPS_MAINTENANCE GROUP BY DATE_CALE

  2. #2
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 790
    Points
    6 790
    Billets dans le blog
    4
    Par défaut
    CAST en INT ton résultat
    Ex :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DATE_CALE
         , CAST( ( SUM( DURE_MO ) / 60 ) AS Int )  Calcul
      FROM ARCH_TEMPS_MAINTENANCE
     GROUP BY DATE_CALE

    Cordialement,
    Lyche

  3. #3
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 247
    Points : 473
    Points
    473
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Je crois que le format du resultat " s'adapte " au type des données en entré.

    Ici DURE_MO doit etre un entier , 60 aussi et le resultat est "donc" un entier.

    Il faut "typer" le resultat attendu.

    Soit avec un convert explicite au format souhaité d'une des donnée en jeu : autour de SUM(DURE_MO) , de DURE_MO ou de 60 mais pas autour de tout le calcul car ce sera 10 qui sera converti (apres le calcul).

    Ou tu peux aussi mettre 60.0 mais je ne sais pas la precision choisi alors.

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    C'est l'inverse puisque ghir_ana souhaite avoir les décimales.
    Notons qu'un entier divisé par un entier retourne un entier.

    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT	DATE_CALE
    	,SUM(DURE_MO) / 60.0
    FROM	dbo.ARCH_TEMPS_MAINTENANCE
    GROUP	BY DATE_CALE
    @++

  5. #5
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 790
    Points
    6 790
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    C'est l'inverse puisque ghir_ana souhaite avoir les décimales.
    Notons qu'un entier divisé par un entier retourne un entier.

    Ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT	DATE_CALE
    	,SUM(DURE_MO) / 60.0
    FROM	dbo.ARCH_TEMPS_MAINTENANCE
    GROUP	BY DATE_CALE
    @++
    J'ai mal compris la question, mea culpa -_-'

    Mettre le .0 derrière le 60 suffit à cast implicitement le résultat? Cool merci

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    J'ai mal compris la question, mea culpa -_-'
    Pas de problème

    Mettre le .0 derrière le 60 suffit à cast implicitement le résultat? Cool merci
    Effectivement.
    Quand on ne le met pas, SQL Server le caste automatiquement en int.
    Si c'est un décimal, SQL Server le caste automatiquement en decimal

    @++

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

Discussions similaires

  1. [PHP 5.2] Séparer les nombre apres la virgule
    Par pierrot10 dans le forum Langage
    Réponses: 9
    Dernier message: 19/10/2010, 00h41
  2. Afficher les zéros après la virgule
    Par Madjid52 dans le forum Bases de données
    Réponses: 19
    Dernier message: 26/05/2009, 15h31
  3. Limité les nombres après la virgule
    Par touchkad dans le forum Langage
    Réponses: 4
    Dernier message: 17/09/2007, 10h37
  4. Limiter les nombres après la virgule
    Par lebigboss dans le forum Langage
    Réponses: 3
    Dernier message: 24/07/2007, 11h39
  5. Afficher les zéros après la virgule
    Par tonton51 dans le forum Langage
    Réponses: 2
    Dernier message: 09/07/2007, 12h42

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