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 39067 게시물 읽기
No. 39067
여러개의 테이블을 비교 업데이트를..
작성자
오늘도 밤샘
작성일
2011-11-08 16:20
조회수
5,299

ITEM이라는 컬럼값을 가진 테이블들이 여러개 있습니다.

<A테이블>
ITEM
=========
0297
0560
0297
0297
0561

<B테이블>
ITEM
=========
0297
0560
0562
0563

<C테이블>
ITEM   |   NEW
=========
0297      1111
0560      3311
0561      2222
0562      4343
0563      5555

ITEM이란 컬럼값을 가진 테이블을 순회하면서 해당 ITEM값들을 C테이블의 해당 NEW컬럼값으로 변경해야 하는데요.
예를 들어 A테이블의 첫번째값부터 C테이블의 해당 값으로 변경하고, A테이블을 마쳤으면 B테이블, 그다음은 F테이블...
이런식으로 한테이블의 첫번째 데이터부터 끝까지 C테이블의 ITEM값과 비교하여 해당하는 NEW컬럼의 값으로 변경해야 하는 작업인데
제 능력으로는 도저히 해결이 안되네요 ㅠㅠ
쿼리를 사용하든 프로시져를 사용하든 상관은 없습니다..고수님들 도와주세요 ㅠㅠ
이것땜에 몇일째 밤샘을......ㅠㅠ하루종일 끙끙 앓고 있습니다 ㅠㅠ

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

-- Update 구문 --
UPDATE a x
   SET item = (SELECT new FROM c WHERE item = x.item)
 WHERE EXISTS (SELECT new FROM c WHERE item = x.item)
;
UPDATE b x
   SET item = (SELECT new FROM c WHERE item = x.item)
 WHERE EXISTS (SELECT new FROM c WHERE item = x.item)
;
UPDATE f x
   SET item = (SELECT new FROM c WHERE item = x.item)
 WHERE EXISTS (SELECT new FROM c WHERE item = x.item)
;

-- Merge 구문 --
MERGE INTO a x USING c ON (c.item = x.item) WHEN MATCHED THEN UPDATE SET item = new;
MERGE INTO b x USING c ON (c.item = x.item) WHEN MATCHED THEN UPDATE SET item = new;
MERGE INTO f x USING c ON (c.item = x.item) WHEN MATCHED THEN UPDATE SET item = new;

마농(manon94)님이 2011-11-08 18:44에 작성한 댓글입니다.

마농님 감사합니다~~^^

오늘도 밤샘님이 2011-11-09 13:57에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39074마농님 도와주세요~ [2]
회튠
2011-11-10
4264
39071매장에 연속3일 방문한 고객을 추출하는 쿼리. 가능할까요??
곰두리
2011-11-09
3893
39070oracle 9i 입니다. disconnect 처리가 안되면.. [1]
황선규
2011-11-09
3862
39067여러개의 테이블을 비교 업데이트를.. [2]
오늘도 밤샘
2011-11-08
5299
39065프로시져 컴파일이 안됩니다. [2]
정혁채
2011-11-08
5879
39064조인? 쿼리질문입니다 [1]
은우
2011-11-08
4192
39061ORA-24374 에러가 발생합니다. [1]
정자영
2011-11-07
7907
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다