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 :

Fonction ROUND dans sql server 2008


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 77
    Par défaut Fonction ROUND dans sql server 2008
    Bonjour,

    Comment peut on extraire un double avec 2 chiffres après virgule dans sql server 2008, j'ai essayé la fonction suivante select ROUND(somme,2) mais le résultat reste le même.

    Merci pour votre réponse

  2. #2
    Membre éclairé Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Pourrait-on avoir un exemple de votre requête ainsi que de vos données afin de pouvoir trouver d'où vient le problème ?

    http://www.developpez.net/forums/d96...vement-poster/

  3. #3
    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
    Par défaut
    Bonjour,

    La fonction ROUND est, comme son nom l'indique, conçue pour arrondir, pas pour trans-typer.
    Essayez donc la fonction CAST avec le type DECIMAL

    @++

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 77
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    La fonction ROUND est, comme son nom l'indique, conçue pour arrondir, pas pour trans-typer.
    Essayez donc la fonction CAST avec le type DECIMAL

    @++
    Merci encore une fois elsuket, c ce que je vais essayer de faire

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 77
    Par défaut
    Voila je fais le calcul du champ suivant dans une requête: (4 * salaire)/100 + (10 * salaire)/100 et il me donne par exemple le résultat suivant: 914,620000

    Merci

  6. #6
    Membre éclairé Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Citation Envoyé par aya02 Voir le message
    Voila je fais le calcul du champ suivant dans une requête: (4 * salaire)/100 + (10 * salaire)/100 et il me donne par exemple le résultat suivant: 914,620000

    Merci
    Question, quel est le type de "salaire" ? C'est surtout ça que j'aurais aimé savoir.
    Exemple sous SQL Server 2k5:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare @salaire float
    set @salaire = 4200.1044789
    select round((4 * @salaire)/100 + (10 * @salaire)/100, 2)
    J'obtiens bien : 588,01

    Maintenant si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare @salaire decimal
    set @salaire = 4200.1044789
    select round((4 * @salaire)/100 + (10 * @salaire)/100, 2)
    Mon résultat sera : 588.000000

    Afin d'obtenir un cast en decimal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare @salaire float
    set @salaire = 4200.1044789
    select convert(decimal(10,2),(4 * @salaire)/100 + (10 * @salaire)/100)

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

Discussions similaires

  1. Procédure stockée dans sql server 2008
    Par aya02 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 04/06/2010, 09h28
  2. utiliser BD Mysql dans SQL server 2008
    Par bebo11 dans le forum SSIS
    Réponses: 2
    Dernier message: 16/04/2010, 01h18
  3. Recher tuto Hiérarchie dans SQL Server 2008
    Par CUCARACHA dans le forum Développement
    Réponses: 3
    Dernier message: 25/11/2009, 10h01
  4. Réponses: 0
    Dernier message: 27/10/2009, 12h24
  5. type geography dans sql server 2008
    Par skandarghorbel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/02/2008, 15h28

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