以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  统计问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2239)

--  作者:abcdzabcdz
--  发布时间:2009/3/30 17:50:00
--  统计问题
求助统计问题: 

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

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



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


--  作者: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老师考虑问题就是全面,看来是我迷糊了.