[MS-SQL]SELECT의 결과 값을 UPDATE에 사용하기
페이지 정보
작성자 서방님 댓글 0건 조회 152회 작성일 14-11-07 15:22본문
이게 조금 복잡한데...
우선 A라는 테이블의 데이터를 UserID, SUM(Value)로 합산한 결과 값이 있다.
aaa | 1000
bbb | 2000
ccc | 200
식으로...
이걸
B라는 테이블에 업데이트를 하려고 한다.
보통 한개의 결과 값만 있다면
Where 로 UserID를 매치 시키면 해결이 됐지만....
이 경우
Update TableA Set Value = Sum(value) <== SUM 사용 불가
FROM TableA A Join TableB B
On A.UserID = B.UserID
에서 Sum 사용 불가 오류가 났다.
그러다 알아낸게 With ...
With TableC(UserID, Val) AS
(
Select A.UserID, IsNull(Sum(B.Val), 100) From TableA A Left Outer Join TableB B on A.UserID = B.UserID Group By A.UserID
)
Update TableA Set Value = val
FROM TableA A join TableC C
on A.UserID = C.UserID
로 해결이 됐다.
WITH 테이블(컬럼1, 컬럼2, ...) AS
(
SELECT 컬럼....
)
은 ( ) 안의 셀렉트문에 나온 컬럼들을 WITH 에 적힌 테이블이름 (컬럼 순서) 로 만들어주고
이걸 Update문의 Join 에 사용할 수 있었다.
덕분에 한건 해결 ;ㅁ;
댓글목록
등록된 댓글이 없습니다.