학생테이블 학과코드 학년 학번 성명 주민 주소 전번 이메일 재학 입학일자
과목테이블 과목코드 과목명 인정학점수 담당교수번호 연계과목코드
수강테이블 수강아이디 학번 과목코드 중간성적 기말성적 과제성적 등급 재수강 성적취득일자 이렇게 테이블이 존재하구요
담당교수가 p020167인 과목을 수강한 학생중에 기말고사 최고 득점자 이름학번 출력 이게 질문인데요
select 이름 학번 from 학생테이블
where 기말성적 = (select MAX(기말성적) from 수강테이블
where select 담당교수 from 과목테이블 where 담당교수번호 = p020167)인거 같앗는데 .. 어디가 잘못됫을까요
아니면 조인을 사용해야하나요 ??
SELECT 학번 , 성명 FROM (SELECT c.학번 , c.성명 , RANK() OVER(ORDER BY a.기말성적 DESC) rk FROM 수강테이블 a , 과목테이블 b , 학생테이블 c WHERE a.과목코드 = b.과목코드 AND a.학번 = c.학번 AND b.담당교수번호 = 'p020167' ) WHERE rk = 1 ; SELECT c.학번 , c.성명 FROM 수강테이블 a , 과목테이블 b , 학생테이블 c WHERE a.과목코드 = b.과목코드 AND a.학번 = c.학번 AND b.담당교수번호 = 'p020167' AND a.기말성적 = (SELECT MAX(a.기말성적) FROM 수강테이블 a , 과목테이블 b WHERE a.과목코드 = b.과목코드 AND b.담당교수번호 = 'p020167' ) ;