以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于SQLGroupTableBuilder 建立表达式统计列 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89246) |
-- 作者:zeroboss -- 发布时间:2016/8/17 23:30:00 -- [求助]关于SQLGroupTableBuilder 建立表达式统计列 项目文件在附表中。 我在用SQLGroupTableBuilder建立一个统计,一列为计划数,一列为完成数,一个表达式列,计算计划完成率 代码是这样的 以下内容为程序代码: 1 Dim b As New SQLGroupTableBuilder("统计表1","出勤") 2 b.Groups.AddDef("部门") 3 b.Totals.AddDef("计划数") 4 b.Totals.AddDef("完成数") 5 b.Totals.AddExp("计划执行率","完成数/计划数","计划执行_计划执行率") 6 结果计划完成率出来完全不是 完成数/计划数 ,百思不得其解,求教老师。
|
-- 作者:Hyphen -- 发布时间:2016/8/18 8:39:00 -- Dim b As New SQLGroupTableBuilder("统计表1","表B") b.Groups.AddDef("部门") \'根据产品名称分组 \'b.Groups.AddDef("日期", DateGroupEnum.day, "周") b.Totals.AddDef("计划数") \'对数量进行统计 b.Totals.AddDef("完成数") \'对数量进行统计 b.Build \'生成统计表 DataTables("统计表1").DataCols.Add("计划执行率",Gettype(Double),"完成数/计划数" ) MainTable=Tables("统计表1") 原来的作法相当是先计算,然后进行合计
|
-- 作者:zeroboss -- 发布时间:2016/8/18 9:37:00 -- 谢谢 Hyphen,在生成的“统计表1”中再插入一个表达式列我也做过,代码繁琐,并且还要处理分组汇总行。在狐爸的教学视频和帮助中http://www.foxtable.com/webhelp/index.htm?page=1533.htm 都是直接在“统计表1”中插入表达式列。 |
-- 作者:大红袍 -- 发布时间:2016/8/18 9:39:00 -- 不可以直接插入表达式,你要使用的是统计后的结果。 |
-- 作者:zeroboss -- 发布时间:2016/8/18 10:31:00 -- 大红袍老师,帮助中的示例是这样的。 示例三 不仅统计列可以是表达式,分组列也可以是表达式,例如: Dim b As New SQLGroupTableBuilder("统计表1","订单") |
-- 作者:大红袍 -- 发布时间:2016/8/18 10:32:00 -- 不可以。 |
-- 作者:zeroboss -- 发布时间:2016/8/18 10:36:00 -- 我的代码跟示例不同的就是我两个字段都是汇总行,示例只是一个字段是汇总行。 如果原因是两个字段都是汇总行,就出问题。我觉得逻辑上是不对的
|
-- 作者:大红袍 -- 发布时间:2016/8/18 10:38:00 -- 人家的是求和,和你的不同。 |
-- 作者:zeroboss -- 发布时间:2016/8/18 10:42:00 -- 好的,明白了! |
-- 作者:zeroboss -- 发布时间:2016/8/18 10:53:00 -- build统计表后,用 DataTables("统计表1").DataCols.Add("计划完成_计划完成率",Gettype(Double)," 完成数/计划数") 计算统计后的结果 谢谢Hyphon,大红袍两位老师
|