Comment dois-je calculer les pourcentages avec des décimales dans SQL?
Comment puis-je convertir ce nombre décimal en SQL? Ci-dessous est l'équation et je reçois la réponse de 78 (entier), mais la vraie réponse est de 78,6 (avec une virgule) j'ai donc besoin de montrer ce que, autrement, le rapport n'est pas de pointage jusqu'à 100%
(100 * [TotalVisit1]/[TotalVisits]) AS Visit1percent
OriginalL'auteur | 2008-12-30
Vous devez vous connecter pour publier un commentaire.
Moche, mais ça fonctionne.
Je l'ai trouvé mieux convertir en décimal de flotter. Certaines divisions mieux travailler avec décimale, au moins sur Microsoft SQL server: SÉLECTIONNEZ 5555/CAST(1000 en tant QUE float), CAST(5555/CAST(1000 en tant QUE float) QUE numériques(5, 2)), 5555/CAST(1000 COMME séparateur décimal), la distribution(5555/CAST(1000 COMME séparateur décimal) QUE Numériques(5, 2))
OriginalL'auteur Shawn
Essayez Ceci:
OriginalL'auteur LeppyR64
Au moins dans MySQL (si ça aide), si vous souhaitez utiliser les nombres réels, vous deviez utiliser un champ de type float, pas de l'ordinaire int champs.
OriginalL'auteur Ólafur Waage
Il suffit d'ajouter une virgule à l'100
forces de cette tout le traitement arriver dans la flotte... si vous voulez la dernière sortie sous forme de texte, et tronqué pour l'affichage à une seule décimale, utiliser la fonction Str
Merci monsieur! ...heureux de vous aider
ou merci miss 😉
OriginalL'auteur Charles Bretana
Pas laid et mieux travailler et rapide , profitez-en!
OriginalL'auteur Ali
C'est probablement exagéré pour ce faire, mais vous pouvez envisagez de convertir toutes les valeurs de flotteurs pour garantir l'exactitude de toutes les phases.
Remarque, vous avez vraiment besoin de mettre le code ici pour le cas que TotalVisits == 0 ou, vous obtiendrez une division par 0 réponse.
OriginalL'auteur Kent Fredric
Ce sera de retour d'une virgule et de la TOUR d'arrondir à un chiffre. Donc dans votre cas, vous obtiendrez 76.6. Si vous ne voulez pas de chiffres modifier le 1 à 0 et si vous voulez deux chiffres changer à 2.
OriginalL'auteur JoBaxter
Essayez avec cette, pas ronde et str ou Plus). j'ai trouvé cela comme un moyen plus simple de le faire.
Vous pouvez modifier le nombre de décimales que vous souhaitez
OriginalL'auteur Zameer Fouzan
Cela pourrait ne pas adresser à vous directement, mais quand vous autour d'une série de chiffres pour l'affichage, vous n'êtes jamais assuré d'obtenir les numéros qui s'ajoutent à 100, sauf si vous prenez des précautions particulières. Par exemple, l'arrondissement 33.33333, 33.33333 et 33.33333 va vous laisser un peu sur la somme, de sorte que la chose logique à faire est de modifier le pourcentage de la valeur la plus grande dans l'ensemble pour tenir compte de toute différence.
Voici une façon de faire que dans Oracle SQL à l'aide de fonctions analytiques et une sous-requête d'affacturage (AVEC) la clause de générer des données de l'échantillon.
C'est ni une bonne ni une mauvaise idée, et des généralités de ne pas venir en elle. C'est juste une technique pour atteindre l'hypothétique exigence.
Vrai, mais c'est une mauvaise condition. Elle conduit de façon incorrecte des données affichées. Et cela ne répond pas à la question posée ci-dessus. Et ce n'est pas la plus précise de la solution pour faire le pourcentage à 100 en soit, si elle peut être la plus simple.
OriginalL'auteur David Aldridge
Dans ms Access, Vous pouvez utiliser la fonction SQL ROUND(nombre, nombre de décimales), Il arrondit le nombre de le nombre de décimales:
ROUND((100 * [TotalVisit1]/[TotalVisits]),1) COMME Visit1percent
OriginalL'auteur larssbr