以下代码
SELECT max(operation.setup_hrs),sum(lt2.hours_worked),(sum(lt2.hours_worked)/max(operation.setup_hrs)) ....
返回(在查询设计器中) 0.180 0.46 2.555555
我自然而然地追求的是
max(operation.setup_hrs)/sum(lt2.hours_worked)
使用完全相同的代码,返回#Error
同样如此,因为我试图再次将其视为愚蠢,
1/(sum(lt2.hours_worked)/max(operation.setup_hrs))
如果我手动编写(再次在同一查询中,总是只替换第三列)
(0.180/0.46)
我得到预期的0.391304。显然它可以处理分裂。
仅仅是为了记录,虽然这里的结果显示没有涉及零但仍然出现#Error,但是,我在原始代码中做了(在我开始寻找bug之前)有代码来处理最终的零容错
SELECT iif(sum(lt2.hours_worked)=0,0,
operation.setup_hrs/iif(sum(lt2.hours_worked)=0,1,sum(lt2.hours_worked)))
我不知所措:可能导致#Error?
的原因答案 0 :(得分:1)
你必须将它转换为int / double / float等来进行除法
max(CDbl(Fields!lt2.hours_worked.Value))/sum(CDbl(lt2.hours_worked))