-- base oracle
UPDATE (
select cu.stat as stat
, cs.sys_date as last_update_date
, cu.user_id as user_id
, cu.sys_date as update_date
from table_1 cs
, table_2 cu
where cs.emp_sabun = cu.user_id
)
SET STAT = 'N'
, update_date = to_char(sysdate, 'yyyymmdd')
where user_id IN (
select distinct expired_user
from table_a
where trunc(expired_date) = trunc(sysdate)
and SYSTEM_NAME IN ('xxxxxx','yyyyyy')
AND MAIL_FLAG = 'Y'
)
and last_update_date < trunc(sysdate -7)
-- to mssql
IF OBJECT_ID('tempdb..#TEMP1') IS NOT NULL
BEGIN
DROP TABLE #TEMP1
END
CREATE TABLE #TEMP1
(
[INDEX] [INT] NOT NULL IDENTITY(1,1),
[MASTERID1] [VARCHAR](20) NOT NULL
);
INSERT INTO #TEMP1 VALUES ('KKK1-1');
INSERT INTO #TEMP1 VALUES ('KKK1-2');
IF OBJECT_ID('tempdb..#TEMP2') IS NOT NULL
BEGIN
DROP TABLE #TEMP2
END
CREATE TABLE #TEMP2
(
[INDEX] [INT] NOT NULL IDENTITY(1,1),
[MASTERID2] [VARCHAR](20) NOT NULL
);
INSERT INTO #TEMP2 VALUES ('KKK2-1');
INSERT INTO #TEMP2 VALUES ('KKK2-2');
UPDATE T1
SET T1.MASTERID1 = 'OOO'
FROM #TEMP1 T1 JOIN #TEMP2 T2
ON T1.[INDEX] = T2.[INDEX]
WHERE T1.[INDEX] = 1
UPDATE T2
SET T2.MASTERID2 = '111'
FROM #TEMP1 T1 JOIN #TEMP2 T2
ON T1.[INDEX] = T2.[INDEX]
WHERE T1.[INDEX] = 1
SELECT * FROM #TEMP1
SELECT * FROM #TEMP2
'DB > mssql' 카테고리의 다른 글
When meet timeout message in excuting alter table command. (alter table 명령 원격 쿼리 타임아웃) (0) | 2019.09.03 |
---|---|
[mssql] sp명으로 정의 가져오기 (0) | 2018.12.08 |
[mssql] 특정 문자열 포함 sp 명 반환 (0) | 2018.12.08 |
[mssql] 트랜잭션로그 백업하기(SSMS) (0) | 2018.03.19 |
[mssql] 테이블 컬럼으로 DECLARE 문 만들기 (0) | 2018.03.16 |