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


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

主题:用SQLGroupTableBuilder多表统计

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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/6 21:44:00 [只看该作者]

数据源不用写局域网路径吧?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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的发言:
数据源不用写局域网路径吧?

 

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


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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/7 13:13:00 [只看该作者]

谢谢指点。按照指示进行查看,发现ACCESS数据源中居然看不到"人员任务统计"这张表,而又列在外部表中清单中,这就奇怪了,求解。

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/7 13:43:00 [只看该作者]

这是查询统计表,当然不存在数据源里. 只是根据你的代码生成在狐表里的 

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、或者你删除,重新引入一下此表。

 

 


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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/9 23:05:00 [只看该作者]

发现ACCESS数据源中表名不一致,基本解决。
新问题,增加一个表达式统计列,把统计出来的“次数”除以“起落”,发现结果不对,求解,代码如下:

Dim b As New SQLGroupTableBuilder("统计表1","事件汇总")
b.C
b.AddTable("事件汇总","PF","人员任务统计","姓名") '添加统计表
'b.AddTable("人员任务统计","姓名","事件汇总","PF") '添加统计表
b.Groups.AddDef("PF") '分组
b.Totals.AddDef("次数")'对数量进行统计
b.Totals.AddDef("起落")'对数量进行统计
b.Totals.AddExp("概率", "次数/起落")'增加表达式列,得出概率
DataTables("统计表1").DataCols("概率").SetFormat("#0.00%")'百分比显示概率
b.Build '生成统计表
MainTable = Tables("统计表1")

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | 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), "次数/起落")


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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/10 19:30:00 [只看该作者]

可以实现,但为何用b.Totals.AddExp就不行?
另外一个问题,统计的“次数”是实际数的三倍,搞不懂,求解。可用如下代码,比较测试:
Dim b As New SQLGroupTableBuilder("统计表1","事件汇总")
b.C
'b.AddTable("事件汇总","PF","人员任务统计","姓名") '添加统计表
b.Groups.AddDef("PF") '分组
'b.Totals.AddDef("起落")'对数量进行统计
b.Totals.AddDef("次数")'对数量进行统计

b.Build '生成统计表
MainTable = Tables("统计表1")


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


加好友 发短信
等级:四尾狐 帖子:808 积分:6213 威望:0 精华:0 注册:2014/3/23 23:02:00
  发帖心情 Post By:2015/5/10 19:35:00 [只看该作者]

老是粘贴不上第2句代码:b.C

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | 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、如果还出错,就上传具体例子。


 回到顶部
总数 24 上一页 1 2 3 下一页