Sql SSRS 2012除法错误(非零)

Sql SSRS 2012除法错误(非零),sql,reporting-services,sql-server-2012,ssrs-2012,Sql,Reporting Services,Sql Server 2012,Ssrs 2012,下面的代码 SELECT max(operation.setup_hrs),sum(lt2.hours_worked),(sum(lt2.hours_worked)/max(operation.setup_hrs)) .... 在查询设计器中返回 0.180 0.46 2.5555 当然,我想要的是 max(operation.setup_hrs)/sum(lt2.hours_worked) 使用完全相同的其余代码返回错误 我也一样,因为我想再次发现divide的愚蠢之处 1/(sum(lt

下面的代码

SELECT max(operation.setup_hrs),sum(lt2.hours_worked),(sum(lt2.hours_worked)/max(operation.setup_hrs)) ....
在查询设计器中返回 0.180 0.46 2.5555

当然,我想要的是

max(operation.setup_hrs)/sum(lt2.hours_worked)
使用完全相同的其余代码返回错误

我也一样,因为我想再次发现divide的愚蠢之处

1/(sum(lt2.hours_worked)/max(operation.setup_hrs))
如果我在同一个查询中再次手动写入,总是替换第三列

(0.180/0.46)
我得到了预期的0.391304。所以很明显,它可以处理这个分裂

为了记录在案,虽然这里的结果显示没有涉及到零,并且仍然出现错误,但是,在我开始寻找bug之前,我在我的原始代码中已经有了处理最终零发生的代码

SELECT iif(sum(lt2.hours_worked)=0,0,
         operation.setup_hrs/iif(sum(lt2.hours_worked)=0,1,sum(lt2.hours_worked)))

我不知所措:是什么导致了这个错误?

您必须将它转换为int/double/float等进行除法

max(CDbl(Fields!lt2.hours_worked.Value))/sum(CDbl(lt2.hours_worked))

请在标签中添加引擎;mysql?哇;是的,谢谢`选择castmaxoperation.setup_hrs as float/castsumlt2.hours_worked as float worked。但我不明白为什么这是必要的。这两个数字在开始时都是浮点数,他们愿意用另一种方法除以浮点数,得到浮点数2.555。是什么规则强制这个角色被施展?因为现在我想知道我还有其他的除法。最好在SSRS studio中转换它们以进行任何计算,因为SSRS studio通常将数据源中的值假定为字符串,所以。错误更多转换详细信息请参阅:SSRS=>Expression=>Category=>Common Functions=>conversion