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 41978 게시물 읽기
No. 41978
이력내용을 엑셀로 출력하는 쿼리 문의드립니다
작성자
고래
작성일
2023-11-28 11:23
조회수
832

 

 

이력 내용을 엑셀로 출력하는 쿼리문의드립니다 한테이블에 키값으로 학력 경력 자격증(등등)으로 나누어져있습니다


   with t as (

   select '홍길동' ,'강남초등학교' , '1001' from dual

   union all    select '홍길동' ,'강남중학교','1001' from dual  

   union all    select '홍길동' ,'강남대학교','1001' from dual  

   

   union all    select '홍길동' ,'d회사경력','1002' from dual  

   union all    select '홍길동' ,'e회사경력','1002' from dual  

   union all    select '홍길동' ,'f회사경력','1002' from dual  

   union all    select '홍길동' ,'g회사경력','1002' from dual  

   

   union all    select '홍길동' ,'1자격증','1003' from dual  

   union all    select '홍길동' ,'2자격증','1003' from dual  

   union all    select '홍길동' ,'3자격증','1003' from dual  

   union all    select '홍길동' ,'4자격증','1003' from dual  

   union all    select '홍길동' ,'5자격증','1003' from dual  

   

   union all    select '김선달' ,'강북초등학교','1001' from dual  

   union all    select '김선달' ,'강북중학교','1001' from dual  

   union all    select '김선달' ,'강북고등학교','1001' from dual  

   union all    select '김선달' ,'강북대학교','1001' from dual   

   

   union all    select '김선달' ,'a회사경력','1002' from dual  

   union all    select '김선달' ,'b회사경력','1002' from dual  

   union all    select '김선달' ,'c회사경력','1002' from dual  

   

   union all    select '김선달' ,'4자격증','1003' from dual  

   union all    select '김선달' ,'7자격증','1003' from dual  

   union all    select '김선달' ,'8자격증','1003' from dual                

   )

   select * from t;


홍길동    강남초등학교    1001

홍길동    강남중학교    1001

홍길동    강남대학교    1001

홍길동    d회사경력    1002

홍길동    e회사경력    1002

홍길동    f회사경력      1002

홍길동    g회사경력    1002

홍길동    1자격증        1003

홍길동    2자격증        1003

홍길동    3자격증        1003

홍길동    4자격증        1003

홍길동    5자격증        1003

김선달    강북초등학교    1001

김선달    강북중학교    1001

김선달    강북고등학교    1001

김선달    강북대학교    1001

김선달    a회사경력    1002

김선달    b회사경력    1002

김선달    c회사경력    1002

김선달    4자격증        1003

김선달    7자격증        1003

김선달    8자격증        1003


이데이터를 


홍길동    강남초등학교      d회사경력    1자격증

홍길동    강남중학교         e회사경력    2자격증

홍길동    강남대학교         f회사경력     3자격증

홍길동                           g회사경력    4자격증

홍길동                                            5자격증

김선달    강북초등학교      a회사경력     4자격증

김선달    강북중학교         b회사경력    7자격증

김선달    강북고등학교      c회사경력     8자격증

김선달    강북대학교        


이렇게 뽑고싶습니다 


감사합니다


 

 

이 글에 대한 댓글이 총 3건 있습니다.
WITH t AS
(
SELECT '홍길동' nm, '1001' cd, 1 seq, '강남초등학교' v FROM dual
UNION ALL SELECT '홍길동', '1001', 2, '강남중학교'   FROM dual
UNION ALL SELECT '홍길동', '1001', 3, '강남대학교'   FROM dual
UNION ALL SELECT '홍길동', '1002', 1, 'd회사경력'    FROM dual
UNION ALL SELECT '홍길동', '1002', 2, 'e회사경력'    FROM dual
UNION ALL SELECT '홍길동', '1002', 3, 'f회사경력'    FROM dual
UNION ALL SELECT '홍길동', '1002', 4, 'g회사경력'    FROM dual
UNION ALL SELECT '홍길동', '1003', 1, '1자격증'      FROM dual
UNION ALL SELECT '홍길동', '1003', 2, '2자격증'      FROM dual
UNION ALL SELECT '홍길동', '1003', 3, '3자격증'      FROM dual
UNION ALL SELECT '홍길동', '1003', 4, '4자격증'      FROM dual
UNION ALL SELECT '홍길동', '1003', 5, '5자격증'      FROM dual
UNION ALL SELECT '김선달', '1001', 1, '강북초등학교' FROM dual
UNION ALL SELECT '김선달', '1001', 2, '강북중학교'   FROM dual
UNION ALL SELECT '김선달', '1001', 3, '강북고등학교' FROM dual
UNION ALL SELECT '김선달', '1001', 4, '강북대학교'   FROM dual
UNION ALL SELECT '김선달', '1002', 1, 'a회사경력'    FROM dual
UNION ALL SELECT '김선달', '1002', 2, 'b회사경력'    FROM dual
UNION ALL SELECT '김선달', '1002', 3, 'c회사경력'    FROM dual
UNION ALL SELECT '김선달', '1003', 1, '4자격증'      FROM dual
UNION ALL SELECT '김선달', '1003', 2, '7자격증'      FROM dual
UNION ALL SELECT '김선달', '1003', 3, '8자격증'      FROM dual
)
SELECT *
  FROM (SELECT nm, cd, v
             , ROW_NUMBER() OVER(PARTITION BY nm, cd ORDER BY seq) rn
          FROM t
        )
 PIVOT (MIN(v) FOR cd IN ( '1001' 학교
                         , '1002' 경력
                         , '1003' 자격
                         ))
 ORDER BY nm, rn
;

 
마농(manon94)님이 2023-11-28 17:14에 작성한 댓글입니다.

오우 감사합니다 seq는없지만 조금 수정해서하면 가능할거같습니다 많이배웁니다

고래님이 2023-11-28 17:54에 작성한 댓글입니다. Edit

정렬 기준이 있어야 하는 문제이므로 seq 를 임의로 추가했습니다.

정렬 기준이 있으면 seq 대신 해당 항목을 사용하시면 됩니다.

만약 없다면? 출력은 뒤죽박죽이 되겠네요.

마농(manon94)님이 2023-11-29 09:06에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41981function에서 autonomous_transaction 사용 문의 [2]
최준영
2024-01-31
161
41980시간 간격에 중복되는 시간 찾기 (고수님들 도와주세요~) [1]
초보
2024-01-25
235
41979DBMS_SCHEDULER 잡 실행주기를 종료하면 바로 실행시킬수 있나요 ? [1]
이규동
2024-01-19
301
41978이력내용을 엑셀로 출력하는 쿼리 문의드립니다 [3]
고래
2023-11-28
832
41977묶음으로 읽기 문의 입니다. [1]
Kwak
2023-11-08
877
41976순번 순위 부여 [2]
감사합니다
2023-10-21
1115
41974L [2]
고길당
2023-09-05
1518
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다