以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  遇到被零除的统计问题,可如何处理。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41880)

--  作者:lfxxdt
--  发布时间:2013/10/29 16:34:00
--  遇到被零除的统计问题,可如何处理。

Dim b As New SQLGroupTableBuilder("产量月报表","出勤清单")
b.C
b.AddTable("出勤清单","工组日","日报表","工组日")
b.Groups.AddDef("{出勤清单}.工序")
b.Groups.AddDef("{出勤清单}.月份")
b.Groups.AddDef("{出勤清单}.日期")
b.Groups.AddDef("{出勤清单}.姓名")
b.Groups.AddDef("{日报表}.组号")
b.Groups.AddDef("总工时")
b.Groups.AddDef("工时")
b.Groups.AddDef("工价")
b.Groups.AddDef("规格型号")
b.Totals.AddDef("生产数")
b.Totals.AddDef("工资")
b.Totals.AddExp("生产数","生产数 * (工时/总工时)","个人数")
b.Filter = "{日报表}.组号 Is not null"
b.Build
MainTable = Tables("产量月报表")

编写以上代码后,提示遇到被零除的错误不能运行,这个问题应该如何处理

 


--  作者:Bin
--  发布时间:2013/10/29 16:36:00
--  
请上例子,带上数据. 否则类似这种问题真的无从下手!
--  作者:lfxxdt
--  发布时间:2013/10/29 16:38:00
--  
b.Totals.AddExp("生产数","生产数 * (工时/总工时)","个人数")
问题主要在这里,总工时有0的情况存在。
--  作者:lfxxdt
--  发布时间:2013/10/29 16:39:00
--  
如何只统计总工时大于0的数据
--  作者:Bin
--  发布时间:2013/10/29 16:42:00
--  
"IIF(总工时>0,生产数 * (工时/总工时),0)"
--  作者:lfxxdt
--  发布时间:2013/10/29 16:45:00
--  
这个语句不行,提示无法完成延迟准备,未能准备语句。
--  作者:有点甜
--  发布时间:2013/10/29 22:39:00
--  
 做一个不行的例子发上来测试一下。