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
운영게시판
최근게시물
MS-SQL Q&A 6954 게시물 읽기
No. 6954
업데이트
작성자
ohyouknow
작성일
2016-02-15 13:15
조회수
4,439

T_PROFILE_IDM_WORK의 DEPT_CD,EMP_TYPE의 데이터를 기준으로 T_PROFILE_PROV_TEMP의 DEPT_CD,EMP_TYPE을 업데이트 하려 합니다.

한방의 SQL로 가능 한가요?

AD_USER_NAME과EMP_ID가 키로 되어 있씁니다.

+---------------------+

| T_PROFILE_PROV_TEMP |

+---------------------+

AD_USER_NAME EMP_ID GIVEN_NAME SURNAME WORKFORCE_ID DEPT_CD DEPT EXCH55_DEPT EMP_TYPE EMP_STATUS HR_SYSTEM MFD_ID

-------------+----------+------------+---------+-------------+--------+------+------------+-----------+------------+-------------+-------

KMGMN04 06XX00700 Test1 Oh1 XX00700 NULL NULL NULL NULL ACTIVE WPS NULL

KMGMN05 06XY00702 Test3 Oh3 XY00702 NULL NULL NULL NULL ACTIVE WPS NULL

KMGMN07 06XY0071 Test4 Oh4 XY0071 NULL NULL NULL NULL ACTIVE WPS NULL

+---------------------+

| T_PROFILE_IDM_WORK |

+---------------------+

AD_USER_NAME EMP_ID EMP_TYPE DEPT_CD EMP_TYPE

------------+-----------+--------+--------+-------

KMGMN04 06XX00700 TEMP 5717 TEMP

KMGMN05 06XY00702 TEMP 5717 TEMP

KMGMN07 06XY0071 TEMP 5717 TEMP

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

UPDATE T_PROFILE_PROV_TEMP

SET T_PROFILE_PROV_TEMP.DEPT_CD = T_PROFILE_IDM_WORK.DEPT_CD,

T_PROFILE_PROV_TEMP.EMP_TYPE = T_PROFILE_IDM_WORK.EMP_TYPE

FROM T_PROFILE_IDM_WORK

WHERE T_PROFILE_IDM_WORK.AD_USER_NAME = T_PROFILE_PROV_TEMP.AD_USER_NAME

AND T_PROFILE_IDM_WORK.EMP_ID = T_PROFILE_PROV_TEMP.EMP_ID

 

ohyouknow님이 2016-02-15 14:26에 작성한 댓글입니다. Edit

WORKFORCE_ID varchar(15),

DEPT_CD varchar(15),

DEPT varchar(15),

EXCH55_DEPT varchar(15),

EMP_TYPE varchar(15),

EMP_STATUS varchar(15),

HR_SYSTEM varchar(15),

MFD_ID varchar(15))

insert into T_PROFILE_PROV_TEMP values

('KMGMN04', '06XX00700', 'Test1', 'Oh1', 'XX00700', NULL, NULL, NULL, NULL, 'ACTIVE', 'WPS', NULL),

('KMGMN05', '06XY00702', 'Test3', 'Oh3', 'XY00702', NULL, NULL, NULL, NULL, 'ACTIVE', 'WPS', NULL),

('KMGMN07', '06XY0071', 'Test4', 'Oh4', 'XY0071', NULL, NULL, NULL, NULL, 'ACTIVE', 'WPS', NULL)

 

create table T_PROFILE_IDM_WORK

(AD_USER_NAME varchar(15),

EMP_ID varchar(15),

EMP_TYPE varchar(15),

DEPT_CD varchar(15),

EMP_TYPE2 varchar(15))

insert into T_PROFILE_IDM_WORK values

('KMGMN04', '06XX00700', 'TEMP', '5717', 'TEMP'),

('KMGMN05', '06XY00702', 'TEMP', '5717', 'TEMP'),

('KMGMN07', '06XY0071', 'TEMP', '5717', 'TEMP')

 

select * from T_PROFILE_PROV_TEMP

select * from T_PROFILE_IDM_WORK

 

update a

set a.DEPT_CD=b.DEPT_CD, a.EMP_TYPE=b.EMP_TYPE

from T_PROFILE_PROV_TEMP a inner join T_PROFILE_IDM_WORK b

on a.EMP_ID=b.EMP_ID and a.AD_USER_NAME=b.AD_USER_NAME

 

 

sqlserver에서 join update는 위와 같은 방법으로 하면 됩니다.

한태경(태경쓰)님이 2016-03-17 19:27에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6958MS사의SQL 서버 PDW 함수 질문
김민석
2016-03-04
4187
6956mysql 설치 질문입니다~
qweasd
2016-02-22
4295
6955Insert 관련 질문입니다. [1]
조동건
2016-02-17
4096
6954업데이트 [2]
ohyouknow
2016-02-15
4439
6953컬럼값 변경 문의 드립니다 [4]
축구소년
2016-02-01
4285
6952랜덤함수를 이용하여 특정일자를 지정하는 쿼리 문의 드립니다.
권영호
2016-01-28
4228
6951xp_cmdshell 막는 방법 [1]
궁금이
2016-01-21
4067
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다