sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014
-
30 mai 2011 à 23:29
sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014
-
31 mai 2011 à 19:03
Bjr a ts ,
j'ai un petit soucis avec l'affichage de mon résultat sur sql server express2008 voilà ma requête
SELECT SUM (NB1)/258151 as S1
From
(SELECT COUNT (champ1) AS NB1
From BNTRAIN
where champ1 between 0 and 10000
having (count) champ1 >=1
le résultat que je suis sensée avoir c'est 0.967...........;(un float quoi)
mais la il m'affiche que le 0 (que la partie entière)
j'ai essayé la même requête avec la même BDD(BNTRAIN) sur Oracleexpress ça a marché j'ai eu le résultat en entier (0.967...........)
veuillez m'aider svp
cordialement. /i
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 31 mai 2011 à 09:23
Salut,
Si tu CAST le NB1 as float dans l'appel de SUM alors cette dernière renverra également un float. Et float/int = float, donc tu devrais obtenir la valeur non tronquée.
sarita1987
Messages postés23Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention29 septembre 2014 31 mai 2011 à 19:03
Merci beaucoup Jopop ça a marché
en fait avant j'ai fait le cast mais avant la somme suit:
'SELECT Cast ( SUM ((NB1)/258151 )as float(20)) as som'
+' From ( SELECT Count(champ1) as NB1 FRom BNTrain where champ1 between 0 and 10000 )BNtrain'
la bonne formule c celle la
'SELECT SUM ( cast(NB1 as float (20))/258151) as som'
+' From ( SELECT Count(champ1) as NB1 FRom BNTrain where champ1 between 0 and 10000 )BNtrain'
j'espére quelle sera utile a un débutant comme moi en sql server