PB sum de float avec MySQL - SQL/NoSQL - Programmation
Marsh Posté le 01-02-2005 à 22:08:47
Et si tu fais :
SELECT sum(val) FROM `histo` WHERE `id_valeur` = 2
Ca te donne aussi le même résultat ?
Il se peut que le LIMIT 2 ne soit appliqué qu'après le SUM ...
Marsh Posté le 01-02-2005 à 22:32:44
Alors j'ai fait une petite modif pour avoir que deux valeurs
SELECT val FROM `suivi` WHERE `id_valeur` =2 AND (`day_old` =1 OR `day_old` =2)
qui me donne
0.7
0.71
en faisant un sum dessus
SELECT sum(val) FROM `suivi` WHERE `id_valeur` =2 AND (`day_old` =1 OR `day_old` =2)
J'obtient 1.4099999666214
Marsh Posté le 01-02-2005 à 22:46:52
Ca parait plus proche du résultat
Y a juste un problème d'arrondi, donc cherche une fonction d'arrondi maintenant
edit :
explications ici : http://mysql.binarycompass.org/doc [...] float.html
SELECT ROUND(SUM(...)) FROM TABLE ...
Marsh Posté le 01-02-2005 à 23:26:37
en effet il est interessant de voir que le LIMIT ne rentre pas en compte avant le sum
remarque d'un cote c'est normal c'est fait pour limiter les lignes de resultats donc forcement apres calcul.
Merci beaucoup
Marsh Posté le 01-02-2005 à 21:01:25
Bonjour,
Voila je souhaite faire un sum de valeur d'une table, jusque la tout va bien.
voici un premier select des valeur que je souhaite
SELECT val FROM `histo` WHERE `id_valeur` = 2 LIMIT 2
donne les valeurs suivantes
0.55
0.56
Pour info toutes les valeurs ont maxi deux chiffres apres la virgules.
Maintenant je fais le sum
SELECT sum(val) FROM `histo` WHERE `id_valeur` = 2 LIMIT 2
donne
23.150000095367
Le champs val est de type float.
Apres une recherche, j'ai vu des personnes qui font round(sum(val),2)*1 mais cela ne change en rien mon resultat.
mysql-server 4.0.23-3 sur Linux Debian Testing a jour.
---------------
Portfolio Boreally.org - Mon livre sur la photo HDR - Ma formation DVD/VOD sur la photo HDR