[MS-SQL]SELECT의 결과 값을 UPDATE에 사용하기 > db

본문 바로가기

db

[MS-SQL]SELECT의 결과 값을 UPDATE에 사용하기

페이지 정보

작성자 서방님 댓글 0건 조회 25회 작성일 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 에 사용할 수 있었다.

덕분에 한건 해결 ;ㅁ;

댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
364
어제
457
최대
592
전체
39,973

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]