세로를 가로로 바꿔야 하는데, 가로의 컬럼수가 너무 많을 때.. 0 1 1,544

by 정수용 [SQL Query] [2017.11.23 12:59:46]


 

안녕하세요! 맨날 눈팅만 하다가 글올려요ㅠ_ㅠ

뽑아보고 싶은 양식이 있는데 PIVOT으로도 잘안되고..그렇다고 SELECT 문을 여러줄 쓰기도 싫어서...

의견을 구하고자 글을 올려요!

 

원래 데이터는

학생명 과목 년도 점수
학생A 국어 2015 80
학생A 국어 2016 88
학생A 수학 2016 81
학생A 영어 2017 78
학생B 국어 2015 95
학생B 과학 2016 99
학생B 과학 2017 100
학생B 사회 2017 91
학생C 영어 2015 70
학생C 수학 2016 80
학생C 과학 2017 90

 

이렇게 생겼어요

이걸 학생과목의 년도별로 데이터를 추출하고자 하면

학생명 과목 2015 2016 2017
학생A 국어 80 88  
학생A 수학   81  
학생A 영어     78
학생B 국어 95    
학생B 과학   99 1000
학생B 사회     91
학생C 영어 70    
학생C 수학   80  
학생C 과학     90

 

이렇게가 되겠죠?

여기까지는 되는데 문제는 그 다음이에요

과목 학생명 2015 2016 2017 학생명 2015 2016 2017 학생명 2015 2016 2017
국어 학생A 80 88   학생B 95     학생C     90
수학 학생A   81   학생B       학생C   80  
영어 학생A     78 학생B       학생C 70    
과학 학생A       학생B   99 100 학생C      
사회 학생A       학생B       학생C      

 

 

이렇게 뽑질 못하겠어요ㅠㅠㅠㅠㅠㅠ

지금은 예시를 학생도 3명 , 과목도 5개이지만

사실 과목은 30개이고 학생은 100명이 넘는 데이터입니다..

가로로 추출하면 보기 불편해보기이긴 하지만

또 그걸 원하시는거라서ㅠㅠ....

어렵네요.......ㅠㅠ도와주세요 고수님들

by 우리집아찌 [2017.11.23 13:35:52]

학생수가 고정이지 않으면 dynamic sql을 사용해야합니다.

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