以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 统计问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2158) |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/20 9:42:00 -- 统计问题 统计问题
1、以“语文”成绩为例,将语文优生(简称“语优”)分为四类(即A、B1、B2、C),现欲分班级统计“语优”中“A”优有多少人、“B1”优有多少人、“B2”优有多少人、“C”优有多少人;数学、英语、总分依次类推。 2、物理/政治的“A优”为“物优”与“政优”中“A”优数之和,其它类推。 3、最后一行,将统计情况汇总。 4、若同时能用“手工编码”和DataColChanged事件编程等方式一题多解为最好,方便学习。 外:“优生统计”表中为根据“成绩及优生划分”表统计出的正确数据,供参考。
|
||||
-- 作者:czy -- 发布时间:2009/3/20 10:14:00 -- 举例好象不恰当,因为表中没有语文数据。 Dim dr As DataRow = e.DataRow [此贴子已经被作者于2009-3-20 10:27:58编辑过]
|
||||
-- 作者:czy -- 发布时间:2009/3/20 10:16:00 -- 只做了个总分优,其它自己参照做吧. 最后行你应该用汇总模式。 |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/20 11:59:00 -- 谢谢! |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/22 19:50:00 -- 对2楼语句深入思考: 思考1、计算“总分”中“A”优与“B1”优人数之和(假设计存在“总分_AB1优”): dr("总分_AB1优") = dt.Compute("Count(姓名)", "[总优] = \'B1\' And [班级] = \'" & dr("班级") & "\' Or [总优] = \'A\' And [班级] = \'" & dr("班级") & "\'" ) 计算“A”、“B1”、“B2”优人数之和: dr("总分_AB1B2优") = dt.Compute("Count(姓名)", "[总优] = \'B1\' And [班级] = \'" & dr("班级") & "\' Or [总优] = \'B1\' And [班级] = \'" & dr("班级") & "\' Or [总优] = \'A\' And [班级] = \'" & dr("班级") & "\'" ) 思考2、高中分文理科,统计成绩时常把“物理与政治”科数据放在一起统计(理科无政治学科,文科无物理学科),假设计有一列“物理/政治_A优”,我将上述语句修改为: dr("物理/政治_A优") = dt.Compute("Count(姓名)", "[物优] = \'A\' And [班级] = \'" & dr("班级") & "\' Or [政优] = \'A\' And [班级] = \'" & dr("班级") & "\'" ) 两种思维方式一致,结果大相径庭(思考1测试数据正确,思考2测试数据错误),真让人想不通????问题到底出在哪里呢???? |
||||
-- 作者:czy -- 发布时间:2009/3/22 19:56:00 -- 道理非常简单,再思考下第二个语句为什么不行,相信你应该很快就能明白的。 |
||||
-- 作者:abcdzabcdz -- 发布时间:2009/3/22 20:04:00 -- 还是不太明白?是不是[物优]在前已提前定位? |
||||
-- 作者:czy -- 发布时间:2009/3/22 20:49:00 -- Dim dr As DataRow = e.DataRow Dim dt As DataTable =DataTables("成绩及优生划分") Dim Str As String = "And [班级] = \'" & dr("班级") & "\'" If e.DataCol.Name = "班级" And e.DataRow.IsNull("班级") = False Then dr("物理/政治_A优") = dt.Compute("Count(姓名)", "[物优] = \'A\'" & Str) + dt.Compute("Count(姓名)", "[政优] = \'A\'" & Str) End If |