我有这个字段我试图运行,但它不断将答案舍入为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
答案 0 :(得分:0)
计数是数字,即使你是圆的。在除法后进行舍入然后舍入 - 或者更好,转换为小数。
您也可以删除这两个查询,并将其替换为:
(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
此外,仅对字符串和列文字(常量)使用单引号。不要将它们用于列名。这会导致混淆和可能难以调试的错误。