2011-09-26 2 views
1

에서 ID를 가리키는 나는 두 개의 테이블이 있습니다 (ID = int, Match = varchar, Status = char)SQL 서버 : 다른 테이블

TableA의

ID1 Match1 Status1 
23 1200 PASS 
24 1300 FAIL 
25 1400 PASS 
26 1500 PASS 
27 1600 FAIL 

TableB의

이제
ID2 Match2 Status2 
456 1200 
784 1300 
457 1300 
124 1400 
741 1600 

, 내가 원하는 tableB (status2)에 'FAIL'이 (가)있는 곳에 채우십시오. tableA ()). 이렇게해야합니다.

TableB 
ID2 Match2 Status2 
456 1200 NULL 
784 1300 FAIL 
457 1300 FAIL 
124 1400 NULL 
741 1600 FAIL 

이제 매우 간단합니다.

update B 
set status2 = 'Fail' 
from tableB B 
Inner join tableA A 
on a.match1 = b.match2 
where a.status1 = 'FAIL' 

ID1를 가리 키도록 수정하십시오 : 다음과 같이 저는 현재 간단한 업데이트 문을 사용하고

TableB 
ID2 Match2 Status2 
456 1200 NULL 
784 1300 FAIL of ID 24 
457 1300 FAIL of ID 24 
124 1400 NULL 
741 1600 FAIL of ID 27 

: 나는 그렇게 예상되는 결과가 될 것이다, STATUS2의 실패 원인 ID1을 데려 가고 싶다는 .

감사

답변

3
update B 
set status2 = 'Fail of ID ' + CAST(A.ID1 AS VARCHAR(4)) 
from tableB B 
Inner join tableA A 
on a.match1 = b.match2 
where a.status1 = 'FAIL' 
관련 문제