Foxtable(狐表)用户栏目专家坐堂 → 关于统计请教


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

主题:关于统计请教

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


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
关于统计请教  发帖心情 Post By:2017/6/15 10:51:00 [只看该作者]

请问如何做每个班级的每个项目最大值,最小值,平均值,分数,等级(及格率)的统计表呢?

图片点击可在新窗口打开查看此主题相关图片如下:tj.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:44.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/15 10:59:00 [只看该作者]


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/15 11:01:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/6/15 11:11:00 [只看该作者]

请问是不是代码在哪里执行呢?是不是要新建一张临时表来存放统计出来的数据?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/15 11:26:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/6/15 11:45:00 [只看该作者]

请问下,运行的统计的时候是不是在原来表的生成数据?会影响原始数据吗?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/15 12:14:00 [只看该作者]

以下是引用yangjing在2017/6/15 11:45:00的发言:
请问下,运行的统计的时候是不是在原来表的生成数据?会影响原始数据吗?

 

你可以在原表生成数据。你删除掉清除数据的代码就好了。

 

参考 http://www.foxtable.com/webhelp/scr/0681.htm

 


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


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/6/15 12:28:00 [只看该作者]

我按照代码修改了下
现在能统计了,但是请问如何根据表中“测试日期”中的年限,比如2016年,在班级的前面生成一个列“测试年”,把2016年内的所有数据统计进去呢?
下面是代码
Dim b As New SQLGroupTableBuilder("按班级统计","体质数据")
b.Groups.AddDef("班级")
b.Totals.AddExp("人数","学籍号","",AggregateEnum.Count) '统计人数
Dim nms() As String = {"BMI分数","肺活量分数","五十米跑分数","坐位体前屈分数","立定跳远分数"}
For Each nm As String In nms '利用表达式统计及格人数和优秀人数 
    b.Totals.Addexp(nm & "_及格", "iif(" &  nm & " >= 60, 1, 0)")
    b.Totals.Addexp(nm & "_优秀", "iif(" &  nm & " >= 90, 1, 0)")
Next
b.VerticalTotal = True
b.Build()
For Each nm As String In nms '对生成的统计表增加表达式列,计算及格率和优秀率
    DataTables("按班级统计").DataCols.Add(nm & "_及格率",Gettype(Double), nm & "_及格/人数" )
    Tables("按班级统计").Cols(nm & "_及格率").Move(Tables("按班级统计").Cols(nm & "_及格").Index + 1)
    DataTables("按班级统计").DataCols.Add(nm & "_优秀率",Gettype(Double), nm & "_优秀/人数" )
    Tables("按班级统计").Cols(nm & "_优秀率").Move(Tables("按班级统计").Cols(nm & "_优秀").Index + 1)
    DataTables("按班级统计").DataCols(nm & "_及格率").SetFormat("0.00%")
    DataTables("按班级统计").DataCols(nm & "_优秀率").SetFormat("0.00%")
Next
MainTable = Tables("按班级统计")

图片点击可在新窗口打开查看此主题相关图片如下:2132135.jpg
图片点击可在新窗口打开查看



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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/15 15:09:00 [只看该作者]

Dim b As New SQLGroupTableBuilder("按班级统计","体质数据")

b.Groups.AddDef("日期",DateGroupEnum.Year,"年")

b.Groups.AddDef("班级")

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


加好友 发短信
等级:童狐 帖子:285 积分:2254 威望:0 精华:0 注册:2011/8/16 10:11:00
  发帖心情 Post By:2017/6/15 16:07:00 [只看该作者]

是这样吗?
Dim b As New SQLGroupTableBuilder("按班级统计","体质数据")
b.Groups.AddDef("日期",DateGroupEnum.Year,"年")
b.Groups.AddDef("班级")
b.Totals.AddExp("人数","学籍号","",AggregateEnum.Count) '统计人数
Dim nms() As String = {"BMI分数","肺活量分数","五十米跑分数","坐位体前屈分数","立定跳远分数"}
For Each nm As String In nms '利用表达式统计及格人数和优秀人数 
    b.Totals.Addexp(nm & "_及格", "iif(" &  nm & " >= 60, 1, 0)")
    b.Totals.Addexp(nm & "_优秀", "iif(" &  nm & " >= 90, 1, 0)")
Next
b.VerticalTotal = True
b.Build()
For Each nm As String In nms '对生成的统计表增加表达式列,计算及格率和优秀率
    DataTables("按班级统计").DataCols.Add(nm & "_及格率",Gettype(Double), nm & "_及格/人数" )
    Tables("按班级统计").Cols(nm & "_及格率").Move(Tables("按班级统计").Cols(nm & "_及格").Index + 1)
    DataTables("按班级统计").DataCols.Add(nm & "_优秀率",Gettype(Double), nm & "_优秀/人数" )
    Tables("按班级统计").Cols(nm & "_优秀率").Move(Tables("按班级统计").Cols(nm & "_优秀").Index + 1)
    DataTables("按班级统计").DataCols(nm & "_及格率").SetFormat("0.00%")
    DataTables("按班级统计").DataCols(nm & "_优秀率").SetFormat("0.00%")
Next
MainTable = Tables("按班级统计")


但是会报错呀

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