2010-09-28 17 views
1

Ce qui devrait être une tâche simple, ou une simple recherche google, je suis venu vide. J'essaie simplement de calculer un pourcentage de qualité. Je suis en train d'utiliser:Comment utiliser T-SQL pour calculer un pourcentage de test?

Select round((133/150), 2) * 100 

que les résultats à 0. Je suis en train de calcualte pour obtenir un score de 89%. J'ai essayé plusieurs combinaisons et je commence à penser que c'est trop compliqué à faire avec t-sql ou ce n'est pas possible. Qu'est-ce que je rate?

Répondre

4

Essayez ceci:

Select round((cast(133 as numeric(20,8))/ cast(150 as numeric(20,8))) * 100, 2) 

Vous utilisez des entiers dans votre exemple, lorsque vous avez besoin de valeurs décimales. Voir here pour plus d'informations.

3

Essayez:

Select round(133.0/150) * 100 

Un int divisé par un int est un int, et 1/2 = 0 (troncature entier)

Plus généralement, si vous vous assurez numérateur est un flotteur (réel/décimal):

Select round(CAST(integervalue as real)/150) * 100