2010-10-19 3 views
3

Je stocke une valeur bigint (pour les tailles de fichier) dans un tableau. Je dois regrouper sur une colonne et pour le filesizes (qui sont en octets). Je voudrais avoir une colonne les montrant par GB. Cela signifierait Sum(FileSize/1024/1024/1024) qui ne montre aucune décimale. Mes recherches semblent indiquer que cela pourrait être dû à la troncature plutôt qu'à l'arrondissement.Sum et Diviser un Bigint, Résultats avec une précision décimale?

J'ai essayé beaucoup d'options de cast et convert, mais ne peut pas sembler trouver des informations sur la façon de sum et divide un bigint et maintenir les décimales. Si je prends la somme et la divise en Excel, j'obtiens les nombres décimaux, ce qui me dit qu'il doit y avoir un moyen de le faire en SQL.

Toute aide est appréciée.

Répondre

9
Sum(CAST(FileSize AS FLOAT)/1024/1024/1024) 
+0

Merci! J'ai également trouvé que cela fonctionnerait: cas lorsque cast (somme (d.filesize)/1024.0/1024.0/1024.0 comme décimal (10,5)) est nul puis '0' else cast (somme (d.filesize) /1024.0 /1024.0/1024.0 comme décimal (10,5)) fin comme SessionSizeGB Je vais essayer le vôtre pour voir la différence. – misssqlfun

+0

N'oubliez pas d'accepter cette réponse si vous l'avez trouvé utile. –

+0

Je suis désolé. Je ne sais pas comment. Je suis si nouveau sur ce site. J'ai cliqué sur la coche. Y a-t-il autre chose? – misssqlfun

Questions connexes