SQL 舍入问题

SQL Rounding Issue

我有这个字段,我正在尝试 运行,但它不断地将答案四舍五入为 0。

(Select round(Count( TestDN.dbo.ServiceDoc.[Sender]) from TestDN.dbo.ServiceDoc  where [Sender] = 'agent'),2) 
/
(Select round(Count( TestDN.dbo.ServiceDoc.[Sender]) from TestDN.dbo.ServiceDoc  where [Sender] = 'user'),2) as 'ServiceCount'

现在这个方程基本上应该是 3277/3369,因此得到一个小数,但我一直得到 0。我什至尝试删除圆函数并将整个方程乘以 1.00,但它给了我 0.00

即使四舍五入,计数也是数字。在除法 之后进行舍入 ,然后舍入——或者更好的是,转换为小数。

您也可以去掉这两个查询,换成一个:

(Select sum(case when [Sender] = 'agent' then 1.0 else 0.0 end) /
        sum(case when [Sender] = 'user' then 1.0 else 0.0 end)
 from TestDN.dbo.ServiceDoc
) 

对于round()

round( (Select sum(case when [Sender] = 'agent' then 1.0 else 0.0 end) /
               sum(case when [Sender] = 'user' then 1.0 else 0.0 end)
        from TestDN.dbo.ServiceDoc
       ), 2
     ) as ServiceCount

此外,仅对字符串和列文字(常量)使用单引号。不要将它们用于列名。这会导致混乱和潜在的难以调试的错误。