게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금]SQL 관련 질문 하나만 더 드리겠습니다.
게시물ID : programmer_6312짧은주소 복사하기
작성자 : 레이드데이
추천 : 0
조회수 : 388회
댓글수 : 2개
등록시간 : 2014/11/02 21:26:25
옵션
  • 베스트금지
  • 본인삭제금지
아래 댓글을 달아주신 분의 조언에 따라 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
 
해당 구문으로 쿼리를 실행시키면
 
HELP3.png

이렇게 나옵니다. 제가 출력하고자 하는 테이블 형식과 완전히 반대로 나오게 됩니다...
 
제가 출력하고 싶은 테이블은 컬럼이 [70][75]...[100]이 아니라 [과목1],[과목2]..가 적힌 컬럼과
그 컬럼에 맞는 학생의 성적이 카운트가 아닌 실제 값으로 과목에 맞게 가로열로 출력이 되었으면 합니다.
 
즉,
 
HELP4.png
 
이런 모양으로 출력하고 싶습니다.
 
pivot 함수를 사용하니 반드시 어떤 연산자를 사용하게 되어 있어 PIVOT 방식은 제가 구하려고 하는 방식과 다른 방식인것 같고..
 
방도를 찾지 못해 이렇게 글을 올립니다.
 
HELP2.png
 
아래에 올렸듯이 데이터는 이렇게 입력되어 있습니다.
서브쿼리에 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(학생명) 입니다.
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호