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 41441 게시물 읽기
No. 41441
그룹잡아서 소분류를 결과로 내고 싶습니다.
작성자
봉달이
작성일
2017-07-05 18:45ⓒ
2017-07-05 18:47ⓜ
조회수
6,387

 안녕하세요..

여러 고수님들 부탁 드립니다. 

감사합니다. 

 

아래와 같은 결과를 내고 싶으면 sql 어떻게 작성해야 될까요??

 

 

--테이블1

필드명 1 필드명2 필드명3 필드명4

aaa a사업 a공장 a제품

bbb b사업 b공장 b제품

ccc c사업 c공장 c제품

ddd d사업 d공장 d제품

eee e사업 e공장 e제품

fff f사업 f공장 f제품

 

 

--테이블 b

 

필드명1 필드명2

aaa a_a제품

aaa a_b제품

aaa a_c제품

aaa a_d제품

bbb b_a제품

bbb b_b제품

ccc c_a제품

ccc c_b제품

ccc c_c제품

ddd d_a제품

 

 

결과

필드명1 필드명2 필드명3 필드명4 필드명5

aaa a사업 a공장 a제품

a_a제품

a_b제품

a_c제품

a_d제품

bbb b사업 b공장 b제품

b_a제품

b_b제품

ccc c사업 c공장 c제품

c_a제품

c_b제품

c_c제품

ddd d사업 d공장 d제품

d_a제품

 

 

 

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

WITH t1 AS
(
SELECT 'aaa' c1, 'a사업' c2, 'a공장' c3, 'a제품' c4 FROM dual
UNION ALL SELECT 'bbb', 'b사업', 'b공장', 'b제품' FROM dual
UNION ALL SELECT 'ccc', 'c사업', 'c공장', 'c제품' FROM dual
UNION ALL SELECT 'ddd', 'd사업', 'd공장', 'd제품' FROM dual
UNION ALL SELECT 'eee', 'e사업', 'e공장', 'e제품' FROM dual
UNION ALL SELECT 'fff', 'f사업', 'f공장', 'f제품' FROM dual
)
, t2 AS
(
SELECT 'aaa' c1, 'a_a제품' c5 FROM dual
UNION ALL SELECT 'aaa', 'a_b제품' FROM dual
UNION ALL SELECT 'aaa', 'a_c제품' FROM dual
UNION ALL SELECT 'aaa', 'a_d제품' FROM dual
UNION ALL SELECT 'bbb', 'b_a제품' FROM dual
UNION ALL SELECT 'bbb', 'b_b제품' FROM dual
UNION ALL SELECT 'ccc', 'c_a제품' FROM dual
UNION ALL SELECT 'ccc', 'c_b제품' FROM dual
UNION ALL SELECT 'ccc', 'c_c제품' FROM dual
UNION ALL SELECT 'ddd', 'd_a제품' FROM dual
)
-- 1. Union All
SELECT c1, c2, c3, c4, c5
  FROM (SELECT c1 c0, c1, c2, c3, c4, '' c5
          FROM t1 a
         WHERE EXISTS (SELECT 1 FROM t2 b WHERE b.c1 = a.c1)
         UNION ALL
        SELECT c1 c0, '' c1, '' c2, '' c3, '' c4, c5 FROM t2
        )
 ORDER BY c0, c1, c5
;
-- 2. Grouping Sets
SELECT a.c1, a.c2, a.c3, a.c4, b.c5
  FROM t1 a
     , t2 b
 WHERE a.c1= b.c1
 GROUP BY GROUPING SETS ( (a.c1, a.c2, a.c3, a.c4)
                        , (b.c1, b.c5)
                        )
 ORDER BY NVL(a.c1, b.c1), c2, c5
;

마농(manon94)님이 2017-07-06 09:40에 작성한 댓글입니다.

마농님...너무 감사합니다.  ^^;....

잘 배워 갑니다. 

봉달이님이 2017-07-06 09:51에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41444두테이블 비교후 자식 레코드가 없는데이터만 삭제방법 [1]
칼로토
2017-07-14
6454
41443특정 컬럼의 데이터를 안보이게 할 수 있을까요? [2]
궁물노답
2017-07-10
6349
41442하나의 FK가 두 테이블을 참조하는 경우도 있나요?
조동건
2017-07-06
6175
41441그룹잡아서 소분류를 결과로 내고 싶습니다. [2]
봉달이
2017-07-05
6387
41440구간 순번 및 중복 확인 (내용 수정) [7]
최상민
2017-07-04
7038
41439세로로 된 데이터를 가로로 보여주기 [2]
webma
2017-07-03
6765
41436XML Type 컬럼에 조건 select 문의 [2]
양정표
2017-07-03
6105
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.050초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다