공부중에 막히는 부분 질문드립니다... 0 4 365

by Harut [2018.05.21 13:37:25]


-테이블-

1.성적테이블 A (컬럼 : 학번(PK), 과목ID(PK), 성적, 성적삭제구분)

*성적삭제구분: 'N','Y'로 구성

2.성적삭제로그테이블 B (컬럼 : 학번(PK), 과목ID(PK) , 성적삭제사유)

*정정사유 : 유급, 재수강 등등...

 

A테이블에서 삭제되지 않은 성적의 총합을 구할 때  B테이블에서 유급된 과목만 포함하고 싶습니다.

어떻게 해야 할까요?

EX) 홍길동 학생의 삭제된 성적까지 포함하여 총합은 10이고 그 중, 유급으로 삭제된 성적이 2, 재수강으로 삭제된 성적이 3일때 재수강으로 삭제된 성적만 빼서 7이 나오도록 구하고 싶습니다.

by betel [2018.05.21 13:54:37]

EXISTS 절에 대해 공부해보세요


by Harut [2018.05.21 15:07:13]

IN절로만 구현하려 해서 안되던 거였네요... 감사합니다!


by 마농 [2018.05.23 08:47:02]
SELECT 학번
     , SUM(성적) 성적
  FROM 성적테이블 a
  LEFT OUTER JOIN 성적삭제로그테이블 b
    ON a.학번 = b.학번
   AND a.과목ID = b.과목ID
 WHERE b.성적삭제사유 IS NULL
    OR b.성적삭제사유 = '유급'
 GROUP BY 학번
;

 


by Harut [2018.05.29 15:59:06]

훨씬 깔끔하네요... 감사합니다!

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