以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 统计问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2239) |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/30 17:50:00 -- 统计问题 求助统计问题: 问题1:按”学生成绩库”中”总分”由高到低顺序,统计年级前30名在各班的分布? 问题2: 按”学生成绩库”中”总分”由高到低顺序,统计年级前X名学生在各班的分布?这里的X指年级总人数的35%.
|
||||
-- 作者:czy -- 发布时间: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 -- 发布时间:2009/3/30 18:56:00 -- 楼主怎么扔下问题就没踪影啊? |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/31 8:56:00 -- 时间限制了!由于第一个问题也解决,第二个问题就较容易了.它是指参考总人数的35%学生分布情况.谢谢! |
||||
-- 作者:czy -- 发布时间:2009/3/31 10:03:00 -- 呵呵,我还没搞明白怎么算,可否说个实际的例子,比如说明一下1、2、3、4班在B列生成的各个值。 |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/31 10:27:00 -- 呵呵,大师也有迷糊的时候:) 举例说明:假如参考人数为100人,若按35%计算,即统计总分前35名在各班的分布(即转化为问题1了)。 |
||||
-- 作者:czy -- 发布时间:2009/3/31 10:41:00 -- 取整数向上还是向下? |
||||
-- 作者:czy -- 发布时间: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 -- 发布时间:2009/3/31 11:29:00 -- 有人做物流管理软件吗? 楼上说的“向下取值”应是“向下取整”。 |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/4/1 9:04:00 -- 以下是引用czy在2009-3-31 10:41:00的发言:
取整数向上还是向下? Czy老师考虑问题就是全面,看来是我迷糊了. |