Rechercher : dans
Par :

SQL : Arrondi dans le SELECT

Dernière réponse le 8 nov 2007 à 13:53:40 Alexander Laurent, le 10 oct 2007 à 08:15:40 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « SQL : Arrondi dans le SELECT » dans :
SQL - Commande SELECT Voir Le langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
SQL - Opérations ensemblistes VoirLes opérations ensemblistes Les opérations ensemblistes en SQL, sont celles définies dans l'algèbre relationnelle. Elles sont réalisées grâce aux opérateurs : UNION INTERSECT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans...
SQL - Sous-requêtes VoirExpression des sous-requêtes Effectuer une sous-requête consiste à effectuer une requête à l'intérieur d'une autre, ou en d'autres termes d'utiliser une requête afin d'en réaliser une autre (on entend parfois le terme de requêtes en...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...

1

laissepiC, le 10 oct 2007 à 08:23:37
Répondre à laissepiC

2

Alexander Laurent, le 10 oct 2007 à 08:43:09

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"

Répondre à Alexander Laurent

3

Alexander Laurent, le 7 nov 2007 à 15:38:32

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

Répondre à Alexander Laurent

4

ShaBoo, le 7 nov 2007 à 15:53:35

Bonjour,


De quel type sont tes colonnes ticket_detail et ticket_detail ?

Répondre à ShaBoo

5

Alexander Laurent, le 8 nov 2007 à 07:51:09

Bonjour,


ticket_detail.prix_ttc est de type Numérique

arti_stock.pv_ttc est aussi de type Numérique


Merci
Cordialement Alexander

Répondre à Alexander Laurent

7

ShaBoo, le 8 nov 2007 à 10:05:26

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

Répondre à ShaBoo

6

Alain42, le 8 nov 2007 à 09:53:37

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

Répondre à Alain42

8

Jeff, le 8 nov 2007 à 10:11:00

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).
Jeff - Wm@Ccm -

Répondre à Jeff

9

Alain42, le 8 nov 2007 à 13:40:58

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) ...................

Répondre à Alain42

10

 Alexander Laurent, le 8 nov 2007 à 13:53:40

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

Répondre à Alexander Laurent