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 39741 게시물 읽기
No. 39741
고정 가로세로 변환 하여 TABLE에 넣기
작성자
고정변
작성일
2012-11-16 07:09
조회수
6,961

안녕하세요

현재 TABLE 구조가 아래와 같이 되어있습니다.

T_CODE CODE_DESC NOW_AMT W1 W2 W3 W4 W5 W6
A01 가나다라 5000 200 300 0 250 0 150
A02 ABCDE 68900 10 45 90 67 89 12
A03 우리나라 6540 39 65 78 89 90 34
A04 일본 12000 45 88 56 34 22 56
A05 중국 340 65 77 34 67 33 76

 

W1 : 1주차를 나타냅니다... 당근 W2는 2주차를 나타내구요

TABLE 구조가 이렇게 되어 있다보니, 집계나 통계를 이용할려 해도 쿼리량이 장난 아니더구요

그래서 아래와 같이 나오게 하고 싶습니다.

T_CODE CODE_DESC NOW_AMT 주차 금액
A01 가나다라 5000 W1 200
A01 가나다라 5000 W2 300
A01 가나다라 5000 W3 0
A01 가나다라 5000 W4 250
A01 가나다라 5000 W5 0
A01 가나다라 5000 W6 150

이렇게 쿼리가 나올수 있다면,

SELECT 한 값을 TABLE 다시 생성해서 새로 만든 TABLE에 집어 넣으려 합니다.

값과 필드는 고정인데... 어렵네요..

도와 주세요...

감사합니다.

 

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

CREATE TABLE DEST_TABLE AS
SELECT A.T_CODE, A.CODE_DESC, A.NOW_AMT,
    'W'||T.NO WEEK_CD,
    DECODE(T.NO, 1, W1, 2, W2, 3, W3, 4, W4, 5, W5, 6, W6) WEEK_AMT
FROM SRC_TABLE A, COPY_T T
WHERE T.NO <= 6


 

전영식(garam111)님이 2012-11-16 07:32에 작성한 댓글입니다.

완전 빠른 답변 고맙습니다.

근데....좀 이해가 안가는 부분이 있어서요

SELECT A.T_CODE, A.CODE_DESC, A.NOW_AMT,
    'W'||T.NO WEEK_CD,
 

여기서 'W'||T.NO  이것을 어떻게 처리해야 하는지요?

뜻이라도 알려주세요..

답변 다시 한번 감사드립니다.

고정변님이 2012-11-16 07:51에 작성한 댓글입니다. Edit

SELECT t_code, code_desc, now_amt
     , 'W'||t.no week_cd
     , DECODE(t.no, 1, w1, 2, w2, 3, w3, 4, w4, 5, w5, 6, w6) week_amt
  FROM src_table a
     , (SELECT LEVEL no FROM dual CONNECT BY LEVEL <= 6) t -- copy_t
;

마농(manon94)님이 2012-11-16 09:28에 작성한 댓글입니다.

 오라클 11G에 생긴 UNPIVOT 이라는 구문을 이용할수도 있습니다.

 

 

SELECT *

FROM src_table

UNPIVOT

(

  W_VALUE FOR WEEK IN

    (W1 AS 'W1'

        , W2 AS 'W2'

               , W3 AS 'W3'

               , W4 AS 'W4'

               , W5 AS 'W5'

                , W6 AS 'W6')

 )

 

생추님이 2012-11-19 20:11에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39749마농님 급하게 질문이 있어요
조기영
2012-11-20
5833
39747아마 불가능하겠지만..혹시나해서 문의 드립니다. [2]
새하정
2012-11-19
6069
39746오라클(Oracle)을대용할수있는,오픈소스의갑(甲)PostgreSQL!!!
포스트그레스SQL
2012-11-16
6331
39741고정 가로세로 변환 하여 TABLE에 넣기 [4]
고정변
2012-11-16
6961
39740두 날짜 사이의 주말을 제외한 일수구하기 [2]
노정균
2012-11-15
9523
39739중복행 재거 [1]
약쟁이총각
2012-11-13
5989
39738중복 행 체크 관련 질문 드립니다. [1]
pjin
2012-11-12
5640
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다