Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
说明:
1、以“语文”成绩为例,将语文优生(简称“语优”)分为四类(即A、B1、B2、C),现欲分班级统计“语优”中“A”优有多少人、“B1”优有多少人、“B2”优有多少人、“C”优有多少人;数学、英语、总分依次类推。
2、物理/政治的“A优”为“物优”与“政优”中“A”优数之和,其它类推。
3、最后一行,将统计情况汇总。
4、若同时能用“手工编码”和DataColChanged事件编程等方式一题多解为最好,方便学习。
外:“优生统计”表中为根据“成绩及优生划分”表统计出的正确数据,供参考。
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:统计问题.table |
举例好象不恰当,因为表中没有语文数据。
Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("成绩及优生划分")
If e.DataCol.Name = "班级" And e.DataRow.IsNull("班级") = False Then
dr("总分_A优") = dt.Compute("Count(姓名)", "[总优] = 'A' And [班级] = '" & dr("班级") & "'" )
dr("总分_B1优") = dt.Compute("Count(姓名)", "[总优] = 'B1' And [班级] = '" & dr("班级") & "'" )
dr("总分_B2优") = dt.Compute("Count(姓名)", "[总优] = 'B2' And [班级] = '" & dr("班级") & "'" )
dr("总分_C优") = dt.Compute("Count(姓名)", "[总优] = 'C' And [班级] = '" & dr("班级") & "'" )
End If
对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测试数据错误),真让人想不通????问题到底出在哪里呢????
还是不太明白?是不是[物优]在前已提前定位?
怎样修改第二个语句才能达到预期目的?