Foxtable(狐表)用户栏目专家坐堂 → SQL server 数据源统计结果问题,请帮改改!


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

主题:SQL server 数据源统计结果问题,请帮改改!

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/20 22:00:00 [显示全部帖子]

b.Totals.AddExp("人数","分数","",AggregateEnum.Count) '统计人数

b.Totals.AddExp("50以下","Case When 分数 < 50   Then  1 else 0  End")

b.Totals.AddExp("50-60","Case When 分数 >= 50 And 分数 < 60   Then  1 else 0  End")


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/20 22:02:00 [显示全部帖子]

筛选加条件:

b.FIlter = Tables("成绩汇总表").FIlter 
b.build()

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/21 8:56:00 [显示全部帖子]

如果是系统的筛选树,筛选后会更改Tables("成绩汇总表").FIlter,所有仍然是5楼的额用法。如果是自己做的筛选树,把点击目录树生成筛选条件的代码搬过来即可

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/21 22:27:00 [显示全部帖子]

添加排名列:http://www.foxtable.com/webhelp/topics/1428.htm


另外上面的代码应该这样用
……
b.Totals.AddDef("分数",AggregateEnum.sum,"总分")
b.Totals.AddDef("分数",AggregateEnum.Average,"平均分")
b.FIlter = "[年级] = '一年级' And [学科] = '语文'" 
b.build()
MainTable = Tables("成绩汇总表")
Tables("成绩汇总表").SetColVisibleWidth("学校|85|年级|60|班级|40|学科|40|人数|40|50以下|50|50-60|40|60-70|40|70-80|40|80-90|40|90-100|40|总分|60|平均分|60|及格|40|优秀|40")

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/27 20:17:00 [显示全部帖子]

先按之前的用法统计完,再做二次处理

遍历统计表的所有行,然后获取平均分作为条件
for each r as row in tables("统计1").rows
    dim rs as integer = datatables("中心小学自测成绩表").compute("count(姓名)","[学校] = '" & r("学校") & "' And [班级] = '" & r("班级") & "' and 分数 > " & r("平均") )
msgbox(rs)
next

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/27 22:08:00 [显示全部帖子]

很简单的问题啊,看懂代码逻辑,不要只会抄

r("超过总平均人数") = rs

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 22:20:00 [显示全部帖子]

再加上学科条件

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/29 8:39:00 [显示全部帖子]

是的。如果要和年级比较,要汇总(各校同年级)的平均分才可以。

 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107389 积分:546218 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/29 21:49:00 [显示全部帖子]

方法都一样呀,使用compute计算

年级总分:Tables("成绩汇总表").compute("sum(总分)")
年级总人数:Tables("成绩汇总表").compute("sum(人数)")
年级的平均分 = 年级总分/ 年级总人数

再按18楼的方式计算

 回到顶部