PB d'affichage de résultat en sql server

Résolu
sarita1987 Messages postés 23 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 29 septembre 2014 - 30 mai 2011 à 23:29
sarita1987 Messages postés 23 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 29 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

2 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
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.

bon SQL
3
sarita1987 Messages postés 23 Date d'inscription mercredi 3 juin 2009 Statut Membre Dernière intervention 29 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
0
Rejoignez-nous