안녕하세요.
합산 점수 별 등급을 메기고 싶어서 아래와 같이 테이블을 만들어보았는데요..
test
id |
name |
subject
test_id |
subject_id |
subject_name |
level
test_id |
sum_score |
level_name |
score
test_id |
subject_id |
score |
user_id |
score테이블에서 test_id, user_id 별로 sum(score) 해서 점수합계 까지는 쉽게 구했는데,
sum(score) 값이 level테이블에 저장된 sum_score 값 이상이면 level_name 등급으로 표시하고싶습니다.
이게 쿼리로 가능한건지.. 가능하다면 도움 좀 부탁드리겠습니다 (__)
SELECT a.test_id , b.name test_name , a.subject_id , c.subject_name , a.sum_score , d.level_name FROM (SELECT test_id , subject_id , SUM(score) sum_score FROM score GROUP BY test_id, subject_id ) a INNER JOIN test b ON a.test_id = b.test_id INNER JOIN subject c ON a.test_id = c.test_id AND a.subject_id = c.subject_id LEFT OUTER JOIN level d ON a.test_id = d.test_id AND a.sum_score >= d.sum_score LEFT OUTER JOIN level e ON d.test_id = e.test_id AND d.sum_score < e.sum_score WHERE e.sum_score IS NULL ;