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