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


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

主题:统计问题

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


加好友 发短信
等级:小狐 帖子:324 积分:3813 威望:0 精华:0 注册:2008/9/1 7:34:00
统计问题  发帖心情 Post By:2009/3/30 17:50:00 [只看该作者]

求助统计问题: 

问题1:按”学生成绩库”中”总分”由高到低顺序,统计年级前30名在各班的分布?

问题2: 按”学生成绩库”中”总分”由高到低顺序,统计年级前X名学生在各班的分布?这里的X指年级总人数的35%.



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题1.table


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/30 18:55:00 [只看该作者]

没闹明白第二个问题。

Dim dt As DataTable = DataTables("成绩表")
Dim dr As DataRow
dr = dt.Find("","总分 Desc",29)
For Each dr1 As DataRow In DataTables("成绩统计").DataRows
    dr1("A") = dt.Compute("Count(班级)", "[班级] = '" & dr1("班级") & "' And [总分] >= " & dr("总分"))
Next

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/30 18:56:00 [只看该作者]

楼主怎么扔下问题就没踪影啊?

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


加好友 发短信
等级:小狐 帖子:324 积分:3813 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2009/3/31 8:56:00 [只看该作者]

时间限制了!由于第一个问题也解决,第二个问题就较容易了.它是指参考总人数的35%学生分布情况.谢谢!


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/31 10:03:00 [只看该作者]

呵呵,我还没搞明白怎么算,可否说个实际的例子,比如说明一下1、2、3、4班在B列生成的各个值。

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


加好友 发短信
等级:小狐 帖子:324 积分:3813 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2009/3/31 10:27:00 [只看该作者]

呵呵,大师也有迷糊的时候:)

举例说明:假如参考人数为100人,若按35%计算,即统计总分前35名在各班的分布(即转化为问题1了)。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/31 10:41:00 [只看该作者]

取整数向上还是向下?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/3/31 10:47:00 [只看该作者]

向下取值。

Dim dt As DataTable = DataTables("成绩表")
Dim dr,dr2 As DataRow
Dim Val As Integer = dt.Compute("Count(班级)", "[班级] Is Not Null")
dr = dt.Find("","总分 Desc",30)
dr2 = dt.Find("","总分 Desc",Math.Floor(Val*0.35))
For Each dr1 As DataRow In DataTables("成绩统计").DataRows
    dr1("A") = dt.Compute("Count(班级)", "[班级] = '" & dr1("班级") & "' And [总分] > " & dr("总分"))
    dr1("B") = dt.Compute("Count(班级)", "[班级] = '" & dr1("班级") & "' And [总分] > " & dr2("总分"))
Next

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
有人做物流管理软件吗?  发帖心情 Post By:2009/3/31 11:29:00 [只看该作者]

楼上说的“向下取值”应是“向下取整”。

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


加好友 发短信
等级:小狐 帖子:324 积分:3813 威望:0 精华:0 注册:2008/9/1 7:34:00
  发帖心情 Post By:2009/4/1 9:04:00 [只看该作者]

以下是引用czy在2009-3-31 10:41:00的发言:
取整数向上还是向下?

Czy老师考虑问题就是全面,看来是我迷糊了.


 回到顶部