Foxtable(狐表)用户栏目专家坐堂 → 用SQLGroupTableBuilder多表统计


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

主题:用SQLGroupTableBuilder多表统计

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/6 11:12:00 [显示全部帖子]

 代码没有问题,应该是你列名写错了。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/6 16:26:00 [显示全部帖子]

 直接执行3楼的代码,没问题;

 

 执行1楼代码,也不报错。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/6 16:35:00 [显示全部帖子]

Dim b As New SQLGroupTableBuilder("统计表1","事件汇总")
b.ConnectionName = "database"
b.AddTable("事件汇总","pf","人员任务统计","姓名") '添加统计表

b.Groups.AddDef("PF") '分组
b.Totals.AddDef("次数")'对数量进行统计
b.Build '生成统计表
MainTable = Tables("统计表1")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/6 21:18:00 [显示全部帖子]

 如果搞错

 

1、你数据源写错;

 

2、表名写错、列名写粗;

 

3、基本就只有这些原因。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/6 21:45:00 [显示全部帖子]

以下是引用一笑在2015/5/6 21:44:00的发言:
数据源不用写局域网路径吧?

 

不用写路径的,直接写名字。主要留意表名和列名,有可能你看到的和数据库里面的不一致。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/7 14:24:00 [显示全部帖子]

以下是引用一笑在2015/5/7 13:13:00的发言:
谢谢指点。按照指示进行查看,发现ACCESS数据源中居然看不到"人员任务统计"这张表,而又列在外部表中清单中,这就奇怪了,求解。

 

1、在外部表清单那里,点击进入,看看它真实的名字是什么,有可能不叫 人员任务统计

 

2、或者你删除,重新引入一下此表。

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/10 9:36:00 [显示全部帖子]

直接这样写

 

b.Build

DataTables("统计表1").DataCols.Add("概率", Gettype(Double), "次数/起落")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/10 19:49:00 [显示全部帖子]

1、b.Totals.AddExp 因为公式是除法,计算的过程中,精度会丢失,会大致的出现误差。

 

2、b.Totals.AddDef("次数") 计算的结果就是你表里面的数据的结果,不可能会出错的。你好好检查一下你表里的数据。

 

3、如果还出错,就上传具体例子。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/10 21:42:00 [显示全部帖子]

SQLGroupTableBuilder本来就是处理父子关系的,你这个不是父子关系,没必要这样做,统计代码看红色。

 

Dim b As New SQLGroupTableBuilder("统计表1","事件汇总")

b.C

b.AddTable("事件汇总","PF","人员任务统计","姓名") '添加统计表

b.Groups.AddDef("PF") '分组

b.Build '生成统计表

DataTables("统计表1").DataCols.Add("次数", Gettype(Integer))
For Each r As Row In Tables("统计表1").rows
    r("次数") = DataTables("事件汇总").Compute("sum(次数)", "pf = '" & r("pf") & "'")
Next

MainTable = Tables("统计表1")

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/17 11:41:00 [显示全部帖子]

 你的方法本来就是错的,你应该分别统计各个表的数据,然后组合各个表的数据一起显示的思路才对啊。

 

 参考 http://www.foxtable.com/help/topics/2305.htm

 


 回到顶部
总数 11 1 2 下一页