세 열을 올바르게 반환하는 쿼리가 있습니다. LEFT JOIN의 결과 만 사용하여 SUM() 데이터를 삭제하는 방법을 알아낼 수 없습니다. 올바르게 다음과 같은 결과를 반환왼쪽 조인 결과에서 데이터를 선택하는 방법
select TITLES.NAME, COUNT(progskills.skill_no) as B, COUNT(ss.skill_no) as A, SUM(ss.score) as C FROM TITLES inner join progskills on progskills.program_no = titles.title_no left join STUSKILLS ss on progskills.SKILL_NO = ss.skill_no and ss.STUDENT_NO = '1234' where progskills.program_no in (select progskills.program_no from PROGSKILLS, STUSKILLS where progskills.SKILL_NO = stuskills.SKILL_NO and stuskills.SCORE != 0 and stuskills.STUDENT_NO = '1234') group by titles.name
:
여기 올바른 세 개의 열을 반환 원래 쿼리입니다
내가 뭘하려고 오전B A C Database Administration 4 1 50 Implementation Specialist 4 1 50 Office Manager 4 2 130 Registrar 4 2 130 Scheduler 4 3 130 Scheduling Assistant 2 1 50 Support Systems Manager 4 2 130
, 네 번째 열에서 ST에 대한 왼쪽 조인의 결과를 기반으로 PROGSKILLS 테이블에서 MINSCORE라는 열을 SUM하는 것입니다 USKILLS. 즉, 왼쪽 조인에서 참조하는 요소 만 합산하려고합니다.
많은 시도를했지만 모든 구문이 실패하거나 다른 데이터 열 결과가 배가되는 것처럼 보입니다.
내 추측은 ... 내 기본 SELECT 절에
SUM(select ps.minscore from PROGSKILLS ps where ps.SKILL_NO = ss.skill_no) as D
를 다음을 추가하는 것입니다 그러나 SQL은 SUM이 (SELECT 구문 오류가 있고 ss.skill_no가 바인딩 할 수 없습니다 뿌려줍니다.
나는 나는 이것이 매우 복잡한 쿼리입니다 실현
. SELECT이 허용 (즉, SUM을 알고 있지만 나는 누군가가 나 열 "A"에 계산 요소를 기반으로 PROGSKILLS에서 데이터를 가져 오는 방법을 알아내는 데 도움 수 있기를 바랍니다 .
미리 ... 고맙습니다!
예, 그랬습니다. 이봐, 난 stackoverflow (그리고 모든 기여자) –