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 40870 게시물 읽기
No. 40870
혹시 이런게 가능한지요?? (고정컬렁횡 -> 로우로 변환)
작성자
량디(fidele)
작성일
2015-07-22 13:50
조회수
7,956

고정 컬럼으로 횡으로 되어있는 테이블을 종으로 데이터 마이그레이션을 하려 합니다.

 

기존 제품출고 테이블은 아래와 같으며, 사이즈는 컬럼 1부터 10까지 고정되어 있습니다. 컬럼이 사이즈1, 사이즈2 이런식으로

10개가 만들어져 있는 테이블입니다.

 

WITH 제품출고 AS

(

SELECT '20150531' 일자, '1BYGJS01' 제품, '0' SIZE01, '2' SIZE02, '1' SIZE03, '1' SIZE04, '3' SIZE05, '3' SIZE06, '0' SIZE07, '0' SIZE08, '0' SIZE09,'0' SIZE10 FROM dual

UNION ALL SELECT '20150601' ,'1BYGJS01' , '0', '1', '3', '0', '2', '3', '0', '0', '0', '0' FROM dual

UNION ALL SELECT '20150603' ,'1BYGJS02' , '0', '0', '3', '1', '2', '3', '6', '2', '0', '0' FROM dual

UNION ALL SELECT '20150601' ,'1BYGJS03' , '0', '0', '0', '3', '1', '2', '4', '0', '2', '3' FROM dual

)

SELECT * FROM 제품출고

 

 

아래는 제품별로 사용하는 사이즈마스터 테이블이고요

 

WITH 제품사이즈 AS

(

SELECT '1BYGJS01' 제품, '02' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS01' 제품, '03' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS01' 제품, '04' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS01' 제품, '05' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS01' 제품, '06' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '03' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '04' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '05' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '06' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '07' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '08' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS02' 제품, '09' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS03' 제품, '04' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS03' 제품, '05' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS03' 제품, '06' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS03' 제품, '07' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS03' 제품, '09' 사이즈 FROM dual

UNION ALL SELECT '1BYGJS03' 제품, '10' 사이즈 FROM dual

)

SELECT * FROM 제품사이즈

 

 

이 두개테이블을 가지고 실제 제품이 사용하는 사이즈만 뽑아서 제품출고자료를 횡으로 만들어 낼 수 있을런지요...

아래 형태로 나오면 됩니다..

어떤 방식으로 해야할 지 감이 안오네요... 고수님들의 답변 기다리겠습니다.

 

 

WITH TOBE AS

(

SELECT '20150531' 일자, '1BYGJS01' 제품, '02' 사이즈, '2' 출고수량 FROM dual

UNION ALL SELECT '20150531', '1BYGJS01' , '03', '1' FROM dual

UNION ALL SELECT '20150531', '1BYGJS01' , '04', '1' FROM dual

UNION ALL SELECT '20150531', '1BYGJS01' , '05', '3' FROM dual

UNION ALL SELECT '20150531', '1BYGJS01' , '06', '3' FROM dual

UNION ALL SELECT '20150601', '1BYGJS01' , '02', '1' FROM dual

UNION ALL SELECT '20150601', '1BYGJS01' , '03', '3' FROM dual

UNION ALL SELECT '20150601', '1BYGJS01' , '04', '0' FROM dual

UNION ALL SELECT '20150601', '1BYGJS01' , '05', '2' FROM dual

UNION ALL SELECT '20150601', '1BYGJS01' , '06', '3' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '03', '3' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '04', '1' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '05', '2' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '06', '3' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '07', '6' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '08', '2' FROM dual

UNION ALL SELECT '20150603', '1BYGJS02' , '09', '0' FROM dual

UNION ALL SELECT '20150601', '1BYGJS03' , '04', '3' FROM dual

UNION ALL SELECT '20150601', '1BYGJS03' , '05', '1' FROM dual

UNION ALL SELECT '20150601', '1BYGJS03' , '06', '2' FROM dual

UNION ALL SELECT '20150601', '1BYGJS03' , '07', '4' FROM dual

UNION ALL SELECT '20150601', '1BYGJS03' , '09', '2' FROM dual

UNION ALL SELECT '20150601', '1BYGJS03' , '10', '3' FROM dual

)

SELECT * FROM TOBE

 

 

 

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

SELECT b.일자, b.제품, a.사이즈, b.출고수량
  FROM 제품사이즈 a
     , 제품출고
       UNPIVOT (출고수량
       FOR 사이즈 IN ( size01, size02, size03, size04, size05
                     , size06, size07, size08, size09, size10 ) ) b
 WHERE a.제품 = b.제품
   AND a.사이즈 = SUBSTR(b.사이즈, -2)
;

마농(manon94)님이 2015-07-22 14:23에 작성한 댓글입니다.

UNPIVOT 이라는게 있네요...

참조해 보겠습니다.

 

감사합니다.

량디(fidele)님이 2015-07-22 19:46에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40873Oracle SYSTIMESTAMP 문의 [3]
참치절단
2015-07-23
7309
40872sql 질문하나 할께요. [2]
이현정
2015-07-23
7514
40871조직도를 만드는 쿼리가 계층쿼리 없이 되어 있어서 [4]
계층
2015-07-22
7820
40870혹시 이런게 가능한지요?? (고정컬렁횡 -> 로우로 변환) [2]
량디
2015-07-22
7956
40869그룹 번호 매기기 문의 드립니다. [2]
김미림
2015-07-22
7992
40868[급해요]중복 일수 제외하고 기간 구하기 [4]
초보자
2015-07-22
9524
40867마농님.... 도와 주세요... [4]
초초보
2015-07-20
7855
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다