4. 업적평가
4.1. 각자의 업적 평가 항목과 평가자 매핑 query
- JIRA 자동 평가 항목은 평가자가 null 로 표기
SELECT acc.id, acc.name, mb.year, obj.title, obj.desc, mbom.ratio, esma.evaluator, esma.ratio
FROM (objective obj
inner join member_bsc_objective_map mbom on obj.id = mbom.objective
INNER JOIN
member_bsc mb ON mbom.bsc_id = mb.id INNER JOIN
account acc ON acc.id = mb.account) left outer join evaluation_scheme_member_achiv esma on mbom.id = esma.mbom_id
order by mb.id
4.1.1. 각자의 업적 평가 항목과 평가자 매핑 Query 에 팀 정보 추가
- JIRA 자동 평가 항목은 평가자가 null 로 표기
- where 절에 atm.team_id 에 숫자를 기록하면 팀 별로 확인 가능
- where 절에 acc.id 에 이메일 계정을 입력하면 개인 별로 확인 가능
- where 절에 esma.evaluator 에 이메일 계정을 입력하면 평가자 별로 확인 가능
- where 절에 esma.evaluator 에 자신의 계정을 입력하고 acc.id 에 자신의 계정을 입력하면 자기 평가가 되는 것임
SELECT acc.id, acc.name, mb.year, obj.title, obj.desc, mbom.ratio, esma.evaluator, esma.ratio as eval_ratio
FROM (objective obj
inner join member_bsc_objective_map mbom on obj.id = mbom.objective
INNER JOIN
member_bsc mb ON mbom.bsc_id = mb.id INNER JOIN
account acc ON acc.id = mb.account inner join account_team_map atm on atm.account = acc.id) left outer join evaluation_scheme_member_achiv esma on mbom.id = esma.mbom_id
where atm.team_id = 2
order by mb.id
4.2. 업적 평가와 점수의 최근 값 매핑 Query
- where 절에 atm.team_id 에 숫자를 기록하면 팀 별로 확인 가능
- where 절에 acc.id 에 이메일 계정을 입력하면 개인 별로 확인 가능
- where 절에 esma.evaluator 에 이메일 계정을 입력하면 평가자 별로 확인 가능
- where 절에 esma.evaluator 에 자신의 계정을 입력하고 acc.id 에 자신의 계정을 입력하면 자기 평가가 되는 것임
- 점수 계산을 위해 scheme_id 로 Group by 를 하기 때문에 JIRA 산출물/일정 평가는 일정 또는 산출물 항목만 보이게 될 것임
- 추후 각각에 대해 scheme_id 를 할당해 준다면 둘 다 보일 것임
SELECT acc.id, acc.name, mb.year, esma.id, obj.title, obj.desc, mbom.ratio, esma.evaluator, esma.ratio as eval_ratio, easel.score, (ifnull(easel.score,0) / 5) * mbom.ratio * (ifnull(esma.ratio,0) / 100) final_score
FROM ((objective obj
inner join member_bsc_objective_map mbom on obj.id = mbom.objective
INNER JOIN
member_bsc mb ON mbom.bsc_id = mb.id INNER JOIN
account acc ON acc.id = mb.account inner join account_team_map atm on atm.account = acc.id) left outer join evaluation_scheme_member_achiv esma on mbom.id = esma.mbom_id)
left outer join (SELECT t1.score, t1.scheme_id, t1.createdt
FROM evaluation_achiv t1 INNER JOIN
(SELECT score, scheme_id, MAX(createdt) AS Expr1
FROM evaluation_achiv
GROUP BY scheme_id) t2 ON t1.scheme_id = t2.scheme_id AND t1.createdt = t2.Expr1) easel on easel.scheme_id = esma.id
where acc.id = 'ygjeon'
group by esma.id
order by mb.id
5. 역량평가
5.1. 각자의 역량 평가 항목과 평가자 매핑 query
- where 절에 esmc.evaluator 에 이메일 계정을 입력하면 평가자 별로 확인 가능
- where 절에 esmc.evaluator 에 자신의 계정을 입력하고 acc.id 에 자신의 계정을 입력하면 자기 평가가 되는 것임
SELECT acc.id, acc.name, atm.team_id, atm.role_id, esmc.id AS schemeid, ci.id AS capid, ci.sort, ci.subsort, ci.title, ci.desc_new, cm.ratio, esmc.evaluator, esmc.ratio AS eval_ratio
FROM account acc INNER JOIN
account_team_map atm ON acc.id = atm.account INNER JOIN
capability_map cm ON atm.role_id = cm.roleid INNER JOIN
capability_items ci ON cm.capid = ci.id LEFT OUTER JOIN
evaluation_scheme_member_capa esmc ON acc.id = esmc.evaluatee
WHERE (acc.id = 'ebkim')
ORDER BY capid
5.2. 역량 평가와 점수의 최근 값 매핑 Query
- where 절에 esmc.evaluator 에 이메일 계정을 입력하면 평가자 별로 확인 가능
- where 절에 esmc.evaluator 에 자신의 계정을 입력하고 acc.id 에 자신의 계정을 입력하면 자기 평가가 되는 것임
SELECT acc.id, acc.name, atm.team_id, atm.role_id, esmc.id AS schemeid, ci.id AS capid, ci.sort, ci.subsort, ci.title, ci.desc_new, cm.ratio, esmc.evaluator, esmc.ratio AS eval_ratio, ecsel.score,
(IFNULL(ecsel.score, 0) / 5 * esmc.ratio) * (IFNULL(cm.ratio, 0) / 100) AS final_score
FROM account acc INNER JOIN
account_team_map atm ON acc.id = atm.account INNER JOIN
capability_map cm ON atm.role_id = cm.roleid INNER JOIN
capability_items ci ON cm.capid = ci.id LEFT OUTER JOIN
evaluation_scheme_member_capa esmc ON acc.id = esmc.evaluatee LEFT OUTER JOIN
(SELECT t1.score, t1.capid, t1.schemeid, t1.createdt
FROM evaluation_capa t1 INNER JOIN
(SELECT score, schemeid, capid, MAX(createdt) AS Expr1
FROM evaluation_capa
GROUP BY capid) t2 ON t1.capid = t2.capid AND t1.createdt = t2.Expr1) ecsel ON ecsel.schemeid = esmc.id AND ecsel.capid = ci.id
WHERE (esmc.evaluator = 'jjhan')
ORDER BY acc.id