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 39594 게시물 읽기
No. 39594
세로일부분만 가로로뽑기
작성자
질문
작성일
2012-08-14 16:58ⓒ
2012-08-14 16:59ⓜ
조회수
5,443

SELECT '과목' t0, '1학년1학기 ' t1, '1학년 2학기'  t2 , '2학년1학기 ' t3, '2학년 2학기'  t4  FROM dual
UNION ALL SELECT '국어', '60' , '80', '90'  , '80' FROM dual
UNION ALL SELECT '영어', '60' , '70' , '70','70'  FROM dual
UNION ALL SELECT '수학', '80' , '70' , '60' ,'90'FROM dual
UNION ALL SELECT '과학', '100', '60' , '70'  ,'85' FROM dual

1 과목 1학년1학기  1학년 2학기 2학년1학기  2학년 2학기
2 국어 60 80 90  80
3 영어 60 70 70 70
4 수학 80 70 60 90
5 과학 100 60 70 85

 형식의 테이블이있습니다

이중에 1학기만 2개뽑아

                                     국어  영어 수학 과학

1학년1학기                  60  60      80   100

2학년1학기                  80  70     70      60

소계(1학년1학기+2학년1학기)  140  130  150   160

 

이렇게뽑으려면 어떻게해야하나요?

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

SELECT
MAX(DECODE(DD_NUM, 0, '과목', 1, '1학년1학기', 2, '2학년1학기')) GUBN,
MAX(DECODE(DD_NUM, 0, '국어', 1, DECODE(RN, 2, T1), 2, DECODE(RN, 2, T3))) KOR,
MAX(DECODE(DD_NUM, 0, '영어', 1, DECODE(RN, 3, T1), 2, DECODE(RN, 3, T3))) ENG,
MAX(DECODE(DD_NUM, 0, '수학', 1, DECODE(RN, 4, T1), 2, DECODE(RN, 4, T3))) MATH,
MAX(DECODE(DD_NUM, 0, '과학', 1, DECODE(RN, 5, T1), 2, DECODE(RN, 5, T3))) SICN
FROM(
SELECT  DD_NUM, RN, T0, T1, T3
FROM(
SELECT ROWNUM RN, U0.* FROM(
SELECT  '과목' t0, '1학년1학기 ' t1, '1학년 2학기'  t2 , '2학년1학기 ' t3, '2학년 2학기'  t4  FROM dual
UNION ALL SELECT '국어', '60' , '80', '90'  , '80' FROM dual
UNION ALL SELECT '영어', '60' , '70' , '70','70'  FROM dual
UNION ALL SELECT '수학', '80' , '70' , '60' ,'90'FROM dual
UNION ALL SELECT '과학', '100', '60' , '70'  ,'85' FROM dual
) U0
)U1, (select 0 DD_NUM from dual
      union all select 1 DD_NUM from dual
      union all select 2 DD_NUM from dual ) c
WHERE C.DD_NUM BETWEEN 0 AND 2
) GROUP BY DD_NUM--, RN

minky님이 2012-08-17 19:08에 작성한 댓글입니다. Edit

with t(t0,t1,t2,t3,t4) as (
           SELECT '국어', '60' , '80', '90'  , '80' FROM dual
 UNION ALL SELECT '영어', '60' , '70' , '70','70'  FROM dual
 UNION ALL SELECT '수학', '80' , '70' , '60' ,'90'FROM dual
 UNION ALL SELECT '과학', '100', '60' , '70'  ,'85' FROM dual
)
select decode(lv,1,'1학년1학기',2,'2학년1학기',3,'소계') gubun,
       min(decode(t0,'국어', decode(lv, 1, t1, 2, t2, 3, (t1+t2)))) as 국어,
       min(decode(t0,'영어', decode(lv, 1, t1, 2, t2, 3, (t1+t2)))) as 영어,
       min(decode(t0,'수학', decode(lv, 1, t1, 2, t2, 3, (t1+t2)))) as 수학,
       min(decode(t0,'과학', decode(lv, 1, t1, 2, t2, 3, (t1+t2)))) as 과학
 from t
, (select level lv from dual connect by level <=3)
group by lv

오케클릭(okclick)님이 2012-08-17 19:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39598SGA의 용량이 부족하게될경우 어떻게 되는지 알고 싶습니다. [2]
임종균
2012-08-21
5366
39597[질문]데이터 없으면 0넣어서 레코드 생성 [1]
샤방
2012-08-21
4405
39595프로시저 전체 트랜잭션 성공시만 커밋 [2]
김선미
2012-08-14
8545
39594세로일부분만 가로로뽑기 [2]
질문
2012-08-14
5443
39593리눅스에서 오라클 디비 접속 [1]
구은호
2012-08-14
4028
39592스케쥴 쿼리작성 문의 [3]
정용석
2012-08-14
4774
39591통계성 리포트 화면 쿼리
작업
2012-08-14
4018
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다