Posez votre question Signaler

SQL : Arrondi dans le SELECT

Alexander Laurent - Dernière réponse le 8 nov. 2007 à 13:53
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
Lire la suite 

SQL : Arrondi dans le SELECT »

10 réponses
Réponse
+4
moins plus
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
Ajouter un commentaire
Réponse
+2
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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).
Ajouter un commentaire
Réponse
+1
moins plus
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) ...................
Ajouter un commentaire
Réponse
+0
moins plus
va voir
http://www.developpez.net/forums/archive/index.php/t-5699.html
Ajouter un commentaire
Réponse
+0
moins plus
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"
Ajouter un commentaire
Réponse
+0
moins plus
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
ShaBoo- 7 nov. 2007 à 15:53
Bonjour,


De quel type sont tes colonnes ticket_detail et ticket_detail ?
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,


ticket_detail.prix_ttc est de type Numérique

arti_stock.pv_ttc est aussi de type Numérique


Merci
Cordialement Alexander
ShaBoo- 8 nov. 2007 à 10:05
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
Ajouter un commentaire
Ce document intitulé « SQL : Arrondi dans le SELECT » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?