我用ACCESS数据库做一个面试打分程序,我把7位考官对考生的打分成绩记录在数据库“cj”表中,如图(1):
计算的规则是八个要素分别除掉最高分、最低分然后计算出平均分,最后八个要素乘以权重相加为总分。 (八个要素权重分别为:综合分析17%、言语表达20%、应变能力14%、计划组织与协调10%、人际交往14%、情绪控制10%、求职动机7%、举止仪表8%)
详细说明:综合分析的成绩等于7个考官分数除掉最高分、最低分计算出平均分,最后乘以权重得到综合分析的成绩。其他要素一样的计算方法;八个要素成绩计算完成后相加及为该考生的面试总分。
我是初学,请各位高人帮忙帮我看看代码如何实现?
最后计算机的出来的成绩写入到“ks”表中,如图(2)
提供思路:
--Step1:计算总分 SELECT ID=准考证号,NAME=考生姓名,TotalScore=(SUM(综合分析)-min(综合分析)-max(综合分析))/5*0.17+ (SUM(语言表达)-min(语言表达)-max(语言表达))/5*0.2+ (SUM(应变能力)-min(应变能力)-max(应变能力))/5*0.14+ (SUM(语言计划组织与协调表达)-min(计划组织与协调)-max(计划组织与协调))/7*0.1+ (SUM(人际交往)-min(人际交往)-max(人际交往))/5*0.14 ... ... FROM cj GROUP BY 考生姓名,准考证号 --Step2:对结果集排序,添加排名。
谢谢了,请老大帮我,把对结果集排序和写入"ks"表的代码一起写一下吧!急用!
兄弟跪求了!
@*天罡星*:
--写入就很简单了 --t1,t2为同一个表,就是上面语句的结果 INSERT INTO ks SELECT *,COUNT(*) AS 排名 FROM t1 LEFT JOIN t2 ON t1.总分<t2.总分
我公司电脑没Access,没法测试,你自己测试下即可。
--步骤一、删除临时表数据 drop table Temp --步骤一,按照岗位,人员合计总分,并写入临时表 SELECT gwdm as 岗位代码,zkzh as 准考证号,ksxm as 姓名,(SUM(zhfx)-min(zhfx)-max(zhfx))/5*1.7+ (SUM(yybd)-min(yybd)-max(yybd))/5*2+ (SUM(ybnl)-min(ybnl)-max(ybnl))/5*1.4+ (SUM(jhzz)-min(jhzz)-max(jhzz))/5*1+ (SUM(rjjw)-min(rjjw)-max(rjjw))/5*1.4+ (SUM(zwqx)-min(zwqx)-max(zwqx))/5*1+ (SUM(qzdj)-min(qzdj)-max(qzdj))/5*0.7+ (SUM(jzyb)-min(jzyb)-max(jzyb))/5*0.8 as 总分 into Temp FROM cj GROUP BY zkzh,ksxm,gwdm --第二步、排名 SELECT t1.*,(select count(*) from Temp t2 where t2.总分>=t1.总分 and t1.岗位代码=t2.岗位代码) AS 排名 FROM Temp t1 order by t1.岗位代码 --第三步、删除临时表 drop table Temp
@幻天芒: