database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 34043 게시물 읽기
No. 34043
오라클 select 문 질문입니다.
작성자
김대웅(ryoii)
작성일
2008-07-07 13:34
조회수
2,082

안녕하세요.


select numb as 학번,

           year as 년도,

           smst as 학기,

           code as 과목코드

from sb7000

order by numb

 

위 쿼리문을 실행 시키면

-------------------

학번 년도 학기 과목코드

0001  2006  2    74638

0001  2007  1    86754

0002  2007  1    74638

0002  2007  2    56453

0003  2004  2    87643

0005  2005  2    45673

0005  2006  1    45673

.

.

.

 

이렇게 출력이 되는 상태입니다.  보시는바와 같이 한 학번당 1~2개의 과목코드를 볼수 있는데요.

과목코드가 2개일때 줄이 따로 입력되있어서 학번은 같지만 줄바꿈이 되버려서 2줄로 출력이 되고 있습니다.

한학번당 한줄로 출력해야 하는데 잘 안되서요.

구현해야 하는 출력화면은

-----------------------

학번   년도 학기 과목코드1  년도 학기 과목코드2

0001  2006    2    74638       2007    1    86754

0002  2007    1    74638       2007    2    56453     

0003  2004    2    87643       null   null   null

0005  2005    2    45673       2006    2   45673       --이렇게 학기,과목코드가 같은 경우도 있어요...

.

.

이런식으로 한학번당 한줄씩 표현해야 되는데 초보라서 쿼리문을 어떻게 해야 할지 모르겠습니다.

도와 주세요.

이 글에 대한 댓글이 총 1건 있습니다.

select a.학번,
       max(a.년도1) as 년도1, max(a.학기1) as 학기1, max(a.과목코드1) as 과목코드1,
       max(a.년도2) as 년도2, max(a.학기2) as 학기2, max(a.과목코드2) as 과목코드2,
       max(a.년도3) as 년도3, max(a.학기3) as 학기3, max(a.과목코드3) as 과목코드3,
       max(a.년도4) as 년도4, max(a.학기4) as 학기4, max(a.과목코드4) as 과목코드4,
  from ( select a.학번,
                decode(a.rnum, 1, a.년도,'') as 년도1,
                decode(a.rnum, 1, a.학기,'') as 학기1,
                decode(a.rnum, 1, a.과목코드,'') as 과목코드1,

                decode(a.rnum, 2, a.년도,'') as 년도2,
                decode(a.rnum, 2, a.학기,'') as 학기2,
                decode(a.rnum, 2, a.과목코드,'') as 과목코드2,

                decode(a.rnum, 3, a.년도,'') as 년도3,
                decode(a.rnum, 3, a.학기,'') as 학기3,
                decode(a.rnum, 3, a.과목코드,'') as 과목코드3,

                decode(a.rnum, 4, a.년도,'') as 년도4,
                decode(a.rnum, 4, a.학기,'') as 학기4,
                decode(a.rnum, 4, a.과목코드,'') as 과목코드4
           from ( select 학번, 년도, 학기, 과목코드,
                         RANK() OVER (PARTITION BY 학번 ORDER BY 년도, 학기) as RNUM
                    from 테이블 ) a
           ) a
 group by a.학번

반디(Bandi)님이 2008-07-07 17:46에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
34046아카이브 로그는 왜 생기죠? [1]
최수연
2008-07-07
1664
34045select 관련 어려운 문제에 봉착했습니다. [2]
질럿
2008-07-07
1903
34044여러서버에서 하나의 테이블을 중복없이 SELECT 하는 좋은방법이 없을까요? [1]
김동우
2008-07-07
2085
34043오라클 select 문 질문입니다. [1]
김대웅
2008-07-07
2082
34042테이블이 필드 순서 변경 가능한가요? [1]
짜집기
2008-07-07
1948
34041총계 구하기... [4]
차이
2008-07-07
2734
34040수불테이블 관련해서 조언좀 부탁드립니다. [2]
초보자
2008-07-07
3109
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다