除以另一个选择计数时,“选择计数”仅在1 = 1时返回

时间:2014-08-16 18:36:58

标签: sql sql-server

我基本上试图获得两个选择计数的百分比。在下面显示的示例中,我应该有一个简单的2 / 6,结果为33.33%。但是,当我运行查询时,只返回100%或0%。任何有关它为什么做它的功能的帮助都很棒

CONVERT(DECIMAL(4, 2), 
(SELECT Count(driver)
 FROM trh a
 WHERE a.hn = trh.hn
   AND a.driver = trh.driver
   AND (a.finishposition < 5
        AND a.finishposition IS NOT NULL
        AND a.finishposition != 0 )) / Count(driver) ) * 100 

现在我尝试CONVERT(DECIMAL(4, 2), 2 / 6),这只会返回0.00

好的,你必须将它们转换为小数

1 个答案:

答案 0 :(得分:1)

SQL Server执行整数除法。只需cast()小数或浮点类型的值之一。例如:

/ cast(Count(driver) as decimal(4, 2))