根據不同老師的評分權重獲取每個學生的每個評分項的總分

描述:首先一個考試裏面有不同的評分項,還有不同的評分老師,每個老師的權重還不一樣,

第一條計算已經評分的跟總共需要評分的總數,判斷老師是否都已經對每個選項都已經進行評分了(所有評分是否結束)

 

SELECT t8.*,SUM(1) reviewed FROM (SELECT
	t5.id course_id,sum(1) totalRecord
FROM
	exp_score_option t1
JOIN EXP_PROJECT_SCORE_OPTION t2 ON t1.id = t2.exp_score_option_id
JOIN exp_course t5 ON t5.exp_id = t2.exp_project_id
JOIN exp_group t3 ON t5.score_users_id = t3.group_id
JOIN exp_score_group t4 ON t4.group_id = t3.group_id
join exp_result t6 on t6.COURSE_ID = t5.id where t5.ID = 21 and t6.CLIENT_IP is not null GROUP BY t5.ID) t8

LEFT JOIN exp_score_record t7 ON t7.course_ID = t8.course_id GROUP BY t7.COURSE_ID;



第二條是根據不同的老師不同權重評分 ,因爲這裏一個考試有不同的評分選項,一個課程有不同的學生參加考試,每個考試有不同的評分老師,這裏只根據課程查詢學生的每個選項的加權平均分

SELECT COURSE_ID,STU_ID,SCORE_ID,SCORE_USER_ID,SCORE_NUM,SCORE_TIME,WEIGHT 
, SUM(WEIGHT), SUM(WEIGHT*SCORE_NUM) 
,  SUM(WEIGHT*SCORE_NUM)  / SUM(WEIGHT) 
FROM (
SELECT t1.* ,IFNULL(t4.WEIGHT,1.0)  WEIGHT
FROM exp_score_record  t1 
LEFT JOIN  exp_course t3 ON t1.COURSE_ID =t3.ID
LEFT JOIN exp_score_group t4 ON t3.SCORE_USERS_ID = t4.group_id AND t1.SCORE_USER_ID = t4.USER_ID WHERE t1.course_id = 21
) u1 GROUP BY  COURSE_ID,STU_ID,SCORE_ID ;

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章