2010-09-28 52 views
1

它应该是一个简单的任务,或简单的谷歌搜索,我已经空了。我试图简单地计算一个等级百分比。我正在尝试使用:使用T-SQL如何计算测试等级百分比?

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

结果为0.我试图计算得到89%的分数。我已经尝试了多种组合,并且我开始认为使用t-sql要么太复杂,要么不可能。我错过了什么?

回答

4

试试这个:

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

当你需要十进制值时,你在你的例子中使用整数。有关更多信息,请参阅here

3

尝试:

Select round(133.0/150) * 100 

一种intint划分为int,和1/2 = 0(整数截断)

更一般地,如果确保分子是一个浮子(实/十进制):

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