합산 점수 별 등급을 메기고 싶습니다.. 0 2 616

by tester0101 [SQL Query] [2019.07.19 00:53:07]


안녕하세요.

합산 점수 별 등급을 메기고 싶어서 아래와 같이 테이블을 만들어보았는데요..

 

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 등급으로 표시하고싶습니다.

이게 쿼리로 가능한건지.. 가능하다면 도움 좀 부탁드리겠습니다 (__)

by 마농 [2019.07.19 09:33:16]
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
;

 


by tester0101 [2019.07.19 10:03:38]

감사합니다.

쿼리 응용해서 잘 만들었습니다. (__)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입