首页 新闻 会员 周边 捐助

打分程序如何计算最高分、最低分和平均分?

0
悬赏园豆:100 [已解决问题] 解决于 2013-07-07 00:42

我用ACCESS数据库做一个面试打分程序,我把7位考官对考生的打分成绩记录在数据库“cj”表中,如图(1):

 

计算的规则是八个要素分别除掉最高分、最低分然后计算出平均分,最后八个要素乘以权重相加为总分。 (八个要素权重分别为:综合分析17%、言语表达20%、应变能力14%、计划组织与协调10%、人际交往14%、情绪控制10%、求职动机7%、举止仪表8%)

详细说明:综合分析的成绩等于7个考官分数除掉最高分、最低分计算出平均分,最后乘以权重得到综合分析的成绩。其他要素一样的计算方法;八个要素成绩计算完成后相加及为该考生的面试总分。

我是初学,请各位高人帮忙帮我看看代码如何实现?

最后计算机的出来的成绩写入到“ks”表中,如图(2)

 

*天罡星*的主页 *天罡星* | 初学一级 | 园豆:64
提问于:2013-07-02 10:58
< >
分享
最佳答案
1

提供思路:

--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:对结果集排序,添加排名。
收获园豆:100
幻天芒 | 高人七级 |园豆:37207 | 2013-07-02 13:32

谢谢了,请老大帮我,把对结果集排序和写入"ks"表的代码一起写一下吧!急用!

兄弟跪求了!

*天罡星* | 园豆:64 (初学一级) | 2013-07-02 15:35

@*天罡星*: 

--写入就很简单了
--t1,t2为同一个表,就是上面语句的结果
INSERT INTO ks
SELECT *,COUNT(*) AS 排名 FROM t1
LEFT JOIN t2 ON t1.总分<t2.总分

我公司电脑没Access,没法测试,你自己测试下即可。

幻天芒 | 园豆:37207 (高人七级) | 2013-07-02 16:41
--步骤一、删除临时表数据
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

 

@幻天芒: 

幻天芒 | 园豆:37207 (高人七级) | 2013-07-04 00:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册