SQL : Arrondi dans le SELECT

[Fermé]
Signaler
-
 Alexander Laurent -
Bonjour à tous,


Voila, j'ai crée une requête sous Interbase 6.5 en me logguant sous SQL View et dans mon SELECT j'ai ajouter un champ calculé, le résultat comprend au moins 6 chiffres après la virgule, j'aimerai ajouter une fonction me permettant d'arrondir mes résultats à 2 chiffres après la virgule.

Voici la ligne concernée : SELECT Sum (distinct ticket_detail.prix_ttc/arti_stock.pv_ttc) as poids

Que faut t'il que j'ajoute pour arriver à mes fins ?

Merci d'avance
Cordialement Alexander Laurent
A voir également:

8 réponses

Bonjour,

essayes avec:

ROUND(X,D)

Retourne l'argument X, arrondi à un nombre à D décimales. Avec deux arguments, la valeur est arrondie avec D décimales.

avec une requette du genre:

SELECT cast,  ROUND(Sum (distinct ticket_detail.prix_ttc/arti_stock.pv_ttc),D) ...................


a vérifier je ne suis pas sur du tout de la syntaxe

mais il faut que X soit ta valeur a arrondir
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci


Il y a un soucis, c'est que la fonction Round n'a pas l'air d'exister, en faite, elle ne se met pas en gras. En gros, je rédige et lance ma requête à partir d'SQL View en me logguant sur une base de donnée créee sous Interbase 6.5.

Encore merci pour vos réponses
Messages postés
18651
Date d'inscription
lundi 15 février 1999
Statut
Webmaster
Dernière intervention
22 septembre 2021
63 240
Sinon, si ta fonction d'arrondi ne permet pas de spécifier le nombre de décimales, tu peux utiliser le hack suivant :

SELECT ROUND(Sum (distinct ticket_detail.prix_ttc/arti_stock.pv_ttc)*100)/100 ...................


Le code ci-dessus permet d'arrondir en gardant 2 décimales (10^2).
dans la fonction ROUND(X,D)
D permet de définir le nombre de décimales

donc

SELECT cast, ROUND(Sum (distinct ticket_detail.prix_ttc/arti_stock.pv_ttc),2) ...................
Messages postés
50
Date d'inscription
mercredi 8 mars 2006
Statut
Membre
Dernière intervention
4 juin 2014
54

Tout d'abord merci pour votre aide.

j'avais déja parcouru ce lien hier soir, d'ailleurs à partir de ces conseils j'ai reussi à supprimer les chiffres après la virgule, cela dit, j'aimerai laisser tout de même 2 ou 3 chiffres après la virgule. Voici à quoi la ligne de ma requête ressemble en attendant :

SELECT cast Sum (distinct ticket_detail.prix_ttc/arti_stock.pv_ttc) as decimal (15,2) as poids


En vous remerciant
Cordialement Alexander


PS : Les 2 champs utilisés dans le calcul sont de type "Numérique"

Bonjour à tous,

Etant donné que mon problème n'est toujours pas résolu, je me permets de le remonter.

Voici la ligne concernée :

SELECT cast (Sum (distinct ticket_detail.prix_ttc/arti_stock.pv_ttc) as numeric (15,2)) as poids

Il m'affiche toujours une dizaine de chiffre après la virgule et en modifiant "numeric (15,2)" par "numeric (9,2)" je n'obtiens plus aucun chiffre après la virgule. J'ai essayé tout les nombres possible dans mes parenthèses et rien à faire.

Help me SVP, il me faut impérativement 2 à 3 chiffres après la virgule. J'ai l'impression que la requête n'est pas capable d'arrondir ces données numériques.

Merci d'avance
Cordialement Alexander
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Bonjour,


De quel type sont tes colonnes ticket_detail et ticket_detail ?

Bonjour,


ticket_detail.prix_ttc est de type Numérique

arti_stock.pv_ttc est aussi de type Numérique


Merci
Cordialement Alexander
Messages postés
392
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
5 septembre 2009
49
Je suis désolé.

Je ne peux que te renvoyer sur ces liens qui pourrait t'apporter quelques éléments de réponses sur interbase :

Les fonctions dans SQL

arrondi désarrondi ??

FreeAdHoc UDF pour Interbase

Bonne Chance