아래 댓글을 달아주신 분의 조언에 따라 pivot이라는 함수를 사용해 보고 있는데
세로열이 가로열로 되어 출력되는 것을 확인했는데 제가 원하는 값이 서로 뒤바뀌어 나와 당혹한 상태입니다.
어떻게 손을 대어봐도 오류만 계속 출력되고 다시 제자리 걸음입니다.
출력 결과와 쿼리문은 다음과 같습니다.(프로시저입니다.)
ALTER PROCEDURE SSP_STUDENT_SELECT
AS
BEGIN
SET NOCOUNT ON;
SELECT *
FROM
(SELECT T.STUDENT_NAME, C.SCORE
FROM T_SCORE C
LEFT JOIN T_STUDENT T ON T.STUDENT_ID = C.SCORE_STUDENT)AS P
PIVOT
(COUNT(SCORE) FOR SCORE IN ([70],[75],[80],[85],[90],[95],[100]))AS PIVOT_TEST
END
EXEC SSP_STUDENT_SELECT
해당 구문으로 쿼리를 실행시키면
이렇게 나옵니다. 제가 출력하고자 하는 테이블 형식과 완전히 반대로 나오게 됩니다...
제가 출력하고 싶은 테이블은 컬럼이 [70][75]...[100]이 아니라 [과목1],[과목2]..가 적힌 컬럼과
그 컬럼에 맞는 학생의 성적이 카운트가 아닌 실제 값으로 과목에 맞게 가로열로 출력이 되었으면 합니다.
즉,
이런 모양으로 출력하고 싶습니다.
pivot 함수를 사용하니 반드시 어떤 연산자를 사용하게 되어 있어 PIVOT 방식은 제가 구하려고 하는 방식과 다른 방식인것 같고..
방도를 찾지 못해 이렇게 글을 올립니다.
아래에 올렸듯이 데이터는 이렇게 입력되어 있습니다.
서브쿼리에 C.SCORE가 아니라 C.SCORE_SUBJECT를 할 경우 전부 값이 하나씩 있기 때문에 1,1,1,1...로만 출력이 됩니다.
각 테이블명은 T_SCORE, T_STUDENT이며
T_SCORE의 컬럼명은 SCORE_ID(점수코드,기본키),SCORE_STUDENT(학생코드,외래키),SCORE_SUBJECT(과목코드,외래키),SCORE(점수)이며,
T_STUDENT의 컬럼명은 STUDENT_ID(학생코드,기본키), STUDENT_NAME(학생명) 입니다.