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


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

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

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


加好友 发短信
等级:童狐 帖子:223 积分:1726 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2019/10/26 20:30:00 [只看该作者]

谢谢老师!其他的现在已解决, 请问怎么统计本班学生分数超过年级平均分的人数。

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


加好友 发短信
等级:超级版主 帖子:105484 积分:536411 威望: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

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


加好友 发短信
等级:童狐 帖子:223 积分:1726 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2019/10/27 21:31:00 [只看该作者]

老师,能不能直接填入“超过总平均人数”列,不用弹出窗口。

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


加好友 发短信
等级:童狐 帖子:223 积分:1726 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2019/10/27 21:34:00 [只看该作者]

谢谢老师,辛苦了!能不能直接填入列“超过总平均人数”,不用弹窗。

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


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


加好友 发短信
等级:超级版主 帖子:105484 积分:536411 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/27 22:08:00 [只看该作者]

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

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

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


加好友 发短信
等级:童狐 帖子:223 积分:1726 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2019/10/28 21:57:00 [只看该作者]

不好意思,刚学不久,对代码表达的意思还不够熟悉,麻烦您了!按这个方法统计,为什么数据不相符,统计出来的人数比本班的人数还要多。带红线的统计不准确,下面两种方法都不行。

图片点击可在新窗口打开查看此主题相关图片如下:自测表.png
图片点击可在新窗口打开查看

(1)
For Each r As Row In Tables("成绩汇总表").rows
    Dim rs As Integer = DataTables("城厢区灵川中心小学自测成绩表").compute("count(姓名)","[学校] = '" & r("学校") & "'And [年级] = '" & r("年级") & "' And [班级] = '" & r("班级") & "' and 分数 >= " & r("平均分") )
'msgbox(rs)
r("超过总平均人数") = rs
Next

图片点击可在新窗口打开查看此主题相关图片如下:统计2.png
图片点击可在新窗口打开查看

(2)
For Each r As Row In Tables("中心小学自测成绩表").rows
For Each m As Row In Tables("成绩汇总表").rows
    Dim rs As Integer = DataTables("中心小学自测成绩表").compute("count(姓名)","[学校] = '" & r("学校") & "' And [年级] = '" & r("年级") & "' And [班级] = '" & r("班级") & "' and 分数 >= " & m("平均分") )
'msgbox(rs)
m("超过总平均人数") = rs
Next
Next

图片点击可在新窗口打开查看此主题相关图片如下:统计1.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:105484 积分:536411 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/28 22:20:00 [只看该作者]

再加上学科条件

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


加好友 发短信
等级:童狐 帖子:223 积分:1726 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2019/10/28 23:55:00 [只看该作者]

您好,老师!我加了学科和单元以后,在人数统计上对了,但是统计出本班分数超过本班平均分的人数,不是本班分数超过全部学校同年级(比如,全部学校一年级)总平均分的人数。

For Each r As Row In Tables("成绩汇总表").rows
    Dim rs As Integer = DataTables("中心小学自测成绩表").compute("count(分数)","[学校] = '" & r("学校") & "'And [年级] = '" & r("年级") & "' And [班级] = '" & r("班级") & "' And [学科] = '" & r("学科") & "' And [单元] = '" & r("单元") & "'and 分数 >= " & r("平均分") )
'msgbox(rs)
r("超过总平均人数") = rs
Next

这里的“r”是各班的行?我要汇总(各校同年级)的平均分才可以。

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


加好友 发短信
等级:超级版主 帖子:105484 积分:536411 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/29 8:39:00 [只看该作者]

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

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


加好友 发短信
等级:童狐 帖子:223 积分:1726 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2019/10/29 21:01:00 [只看该作者]

是要统计每个班级的学生分数超过各校同年级平均的人数。比如,各校一年级的每个班级的分数有多少人超过所有一年级的平均分(所有一年级的总分除以所有一年级的总人数)。

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