Foxtable(狐表)用户栏目专家坐堂 → [求助]关于SQLGroupTableBuilder 建立表达式统计列


  共有2546人关注过本帖树形打印复制链接

主题:[求助]关于SQLGroupTableBuilder 建立表达式统计列

帅哥哟,离线,有人找我吗?
zeroboss
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:449 威望:0 精华:0 注册:2016/8/2 11:14:00
[求助]关于SQLGroupTableBuilder 建立表达式统计列  发帖心情 Post By:2016/8/17 23:30:00 [只看该作者]

项目文件在附表中。
我在用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


结果计划完成率出来完全不是 完成数/计划数 ,百思不得其解,求教老师。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb



 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:449 威望:0 精华:0 注册:2016/8/2 11:14:00
  发帖心情 Post By:2016/8/18 9:37:00 [只看该作者]

谢谢 Hyphen,在生成的“统计表1”中再插入一个表达式列我也做过,代码繁琐,并且还要处理分组汇总行。在狐爸的教学视频和帮助中http://www.foxtable.com/webhelp/index.htm?page=1533.htm 都是直接在“统计表1”中插入表达式列。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/18 9:39:00 [只看该作者]

 不可以直接插入表达式,你要使用的是统计后的结果。

 回到顶部
帅哥哟,离线,有人找我吗?
zeroboss
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:449 威望:0 精华:0 注册:2016/8/2 11:14:00
  发帖心情 Post By:2016/8/18 10:31:00 [只看该作者]

大红袍老师,帮助中的示例是这样的。


示例三

不仅统计列可以是表达式,分组列也可以是表达式,例如:

Dim b As New SQLGroupTableBuilder("统计表1","订单")
b.Groups.AddExp("年","Year(日期)")
b.Totals.AddDef(
"数量")
b.Totals.AddExp(
"金额","数量 * 单价 * (1 - 折扣)")
b.Build 
MainTable = Tables("统计表1")


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/18 10:32:00 [只看该作者]

 不可以。

 回到顶部
帅哥哟,离线,有人找我吗?
zeroboss
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:449 威望:0 精华:0 注册:2016/8/2 11:14:00
  发帖心情 Post By:2016/8/18 10:36:00 [只看该作者]

我的代码跟示例不同的就是我两个字段都是汇总行,示例只是一个字段是汇总行。

如果原因是两个字段都是汇总行,就出问题。我觉得逻辑上是不对的

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/18 10:38:00 [只看该作者]

 人家的是求和,和你的不同。

 回到顶部
帅哥哟,离线,有人找我吗?
zeroboss
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:449 威望:0 精华:0 注册:2016/8/2 11:14:00
  发帖心情 Post By:2016/8/18 10:42:00 [只看该作者]

好的,明白了!

 回到顶部
帅哥哟,离线,有人找我吗?
zeroboss
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:46 积分:449 威望:0 精华:0 注册:2016/8/2 11:14:00
  发帖心情 Post By:2016/8/18 10:53:00 [只看该作者]

build统计表后,用
DataTables("统计表1").DataCols.Add("计划完成_计划完成率",Gettype(Double)," 完成数/计划数")
计算统计后的结果

谢谢Hyphon,大红袍两位老师

 回到顶部