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
운영게시판
최근게시물
DB2 Q&A 957 게시물 읽기
No. 957
쿼리좀 부탁드려요.
작성자
개발자
작성일
2006-04-01 17:23ⓒ
2006-04-01 17:26ⓜ
조회수
5,374

 

TA TB
Date WA WB WC Date GroupCode WorkCode
20060301 3 9 9 20030301 GA WA
20060302 4 10 10 20030301 GB WB
20060303 5 11 11 20030301 GC WC
20060304 6 12 12 20030301 GD -
20060305 7 13 13 20030302 GA WC
20060306 8 14 14 20030302 GB WA
20060307 9 15 15 20030302 GC WB
20060308 10 16 16 20030302 GD -
20060309 11 17 17 20030303 GA -
20060310 12 18 18 20030303 GB WA
20060311 13 19 19 20030303 GC WB
20060312 14 20 20 20030303 GD WC
20060313 15 21 21 20030304 GA WC
20060314 16 22 22 20030304 GB -
20060315 17 23 23 20030304 GC WB
20060316 18 3 3 20030304 GD WA
20060317 19 4 4 20030305 GA WC
20060318 20 5 5 20030305 GB WA
20060319 21 6 6 20030305 GC WB
20060320 22 7 7 20030305 GD -
20060321 23 8 8 20030306 GA WC
20060322 24 9 9 20030306 GB WA
20060323 25 10 10 20030306 GC WB
20060324 26 11 11 20030306 GD -
20060325 27 12 12 20030307 GA WC
20060326 28 13 13 20030307 GB WA
20060327 29 14 14 20030307 GC WB
20060328 30 15 15 20030307 GD -
20060329 31 16 27 20030308 GA WC
20060330 32 17 28 20030308 GB WA
20060331 33 18 28 20030308 GC WB
20030308 GD -


 

CREATE TABLE TA
(CDATE char(8),
WA int,
WB int,
WC int
)

CREATE TABLE TB
(CDATE char(8),
GCODE char(2),
WCODE char(2)
)

두개 표에서 아래와 같은 결과를 쿼리해야 합니다.

고수님들 부탁좀 드릴께요.

DBMS는 DB2입니다.

 

Result Table
Date GA GB GC GD
20060301 3 9 9 -
20060302 10 4 10 -
20060303 - 5 11 11
20060304 12 - 12 6
20060305 13 7 13 -
20060306 14 8 14 -
20060307 15 9 15 -
20060308 16 10 16 -


 

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

아무런 요건정의가 없네요^^

이준식(ysaraha)님이 2006-04-02 15:16에 작성한 댓글입니다.

 

with ta (Date   ,WA     ,WB     ,WC) as( values
('20060301'     ,3      ,9      ,9 ),
('20060302'     ,4      ,10     ,10),
('20060303'     ,5      ,11     ,11),
('20060304'     ,6      ,12     ,12),
('20060305'     ,7      ,13     ,13),
('20060306'     ,8      ,14     ,14),
('20060307'     ,9      ,15     ,15),
('20060308'     ,10     ,16     ,16),
('20060309'     ,11     ,17     ,17),
('20060310'     ,12     ,18     ,18),
('20060311'     ,13     ,19     ,19),
('20060312'     ,14     ,20     ,20),
('20060313'     ,15     ,21     ,21),
('20060314'     ,16     ,22     ,22),
('20060315'     ,17     ,23     ,23),
('20060316'     ,18     ,3      ,3 ),
('20060317'     ,19     ,4      ,4 ),
('20060318'     ,20     ,5      ,5 ),
('20060319'     ,21     ,6      ,6 ),
('20060320'     ,22     ,7      ,7 ),
('20060321'     ,23     ,8      ,8 ),
('20060322'     ,24     ,9      ,9 ),
('20060323'     ,25     ,10     ,10),
('20060324'     ,26     ,11     ,11),
('20060325'     ,27     ,12     ,12),
('20060326'     ,28     ,13     ,13),
('20060327'     ,29     ,14     ,14),
('20060328'     ,30     ,15     ,15),
('20060329'     ,31     ,16     ,27),
('20060330'     ,32     ,17     ,28),
('20060331'     ,33     ,18     ,28))

,tb (Date       ,GroupCode      ,WorkCode) as (values
('20030301'     ,'GA'   ,'WA'),     
('20030301'     ,'GB'   ,'WB'),     
('20030301'     ,'GC'   ,'WC'),     
('20030301'     ,'GD'   ,NULL ),     
('20030302'     ,'GA'   ,'WC'),     
('20030302'     ,'GB'   ,'WA'),     
('20030302'     ,'GC'   ,'WB'),     
('20030302'     ,'GD'   ,NULL ),     
('20030303'     ,'GA'   ,NULL ),     
('20030303'     ,'GB'   ,'WA'),     
('20030303'     ,'GC'   ,'WB'),     
('20030303'     ,'GD'   ,'WC'),     
('20030304'     ,'GA'   ,'WC'),     
('20030304'     ,'GB'   ,NULL ),     
('20030304'     ,'GC'   ,'WB'),     
('20030304'     ,'GD'   ,'WA'),     
('20030305'     ,'GA'   ,'WC'),     
('20030305'     ,'GB'   ,'WA'),     
('20030305'     ,'GC'   ,'WB'),     
('20030305'     ,'GD'   ,NULL ),     
('20030306'     ,'GA'   ,'WC'),     
('20030306'     ,'GB'   ,'WA'),     
('20030306'     ,'GC'   ,'WB'),     
('20030306'     ,'GD'   ,NULL ),     
('20030307'     ,'GA'   ,'WC'),     
('20030307'     ,'GB'   ,'WA'),     
('20030307'     ,'GC'   ,'WB'),     
('20030307'     ,'GD'   ,NULL ),     
('20030308'     ,'GA'   ,'WC'),     
('20030308'     ,'GB'   ,'WA'),     
('20030308'     ,'GC'   ,'WB'),     
('20030308'     ,'GD'   ,NULL ))     

select a.date ,
       max(case (case when GroupCode = 'GA' then WORKCODE end) when 'WA' then a.WA
                                                           when 'WB' then a.WB
                                                           when 'WC' then a.WC end) c1,
       max(case (case when GroupCode = 'GB' then WORKCODE end) when 'WA' then a.WA 
                                                           when 'WB' then a.WB
                                                           when 'WC' then a.WC end) c2,
       max(case (case when GroupCode = 'GC' then WORKCODE end) when 'WA' then a.WA
                                                           when 'WB' then a.WB
                                                           when 'WC' then a.WC end) c3,
       max(case (case when GroupCode = 'GD' then WORKCODE end) when 'WA' then a.WA
                                                           when 'WB' then a.WB
                                                           when 'WC' then a.WC end) c4
  from ta a,tb b
 where a.date=replace(b.date,'2003','2006')
group by a.date
;

도님이 2006-04-03 11:32에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
960AIX용 DB2 다운로드 및 구하는곳 [2]
나현길
2006-04-03
5582
959거래 정보에서 판매상품만 Select 해오기. [1]
하늘
2006-04-03
5022
958백업했을때의 타임 스탬프를 알수 있는 방법이 없나요? [1]
니시노
2006-04-02
4328
957쿼리좀 부탁드려요. [2]
개발자
2006-04-01
5374
956[질문] char()함수에서 날짜를 문자열로 바꿀려고 하는데요 [3]
이준식
2006-03-31
6637
955큰 테이블의 reorg시 질문~ [3]
osast
2006-03-30
4834
954분석에서..declare 문 사용하기 [1]
하늘
2006-03-30
5319
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다