2014-03-31 3 views
0

표 A 열 col3, col4, col5 및 col6을 표 b 열 col3, col4, col5로 업데이트해야합니다. and col6 그러나 표 b col5 및 col6 값은 표 c col1에서 가져와야합니다. 의미 테이블 b col5 및 col6 값을 있지만 테이블 c col1 값으로 바꿀 필요가 및 그에 따라 col5 및 col6 테이블을 업데이트해야합니다. 테이블 a와 테이블 b에는 col1과 col2가 공통적으로 있습니다. 나는 이와 같은 것을 시도하고있다.표 b의 열을 사용하여 표를 업데이트하십시오 (표 b의 2 열 값은 표 c에서 가져와야 함)

Update a 
a.col3 = b.col3, 
a.col4 = b.col4, 
a.col5 = (select col1 from table_c c where c.col2=b.col5), 
a.col6 = (select col1 from table_c c where c.col2=b.col6) 
from table_A a inner join table_b 
on a.col1=b.col1 and a.col2=b.col2 

누군가가 위의 업데이트 쿼리를 재구성하는 데 도움을 줄 수 있습니까? 귀하의 도움에 미리 감사드립니다.

+0

샘플 데이터 (업데이트 전의 내용과 업데이트 이후의 내용)를 입력 할 수 있습니까? – TTeeple

+0

@TTeeple : 테이블 a abc def 0 0 -999 -999 테이블 b abc def 1 1 -sa1283 -sa4958 테이블 c -sa1283 1234 -sa4958 3456 업데이트 테이블 A는 다음 표와 같아야합니다. abc def 1 1 1234 3456 this this 더 명확하게 될 것입니다 - – user3375857

답변

0

Update a a.col3 = b.col3, a.col4 = b.col4, a.col5 = c.col1, a.col6 = d.col1 from table_A a inner join table_b on a.col1=b.col1 and a.col2=b.col2 inner join table_c c on c.col2 = b.col5 inner join table_c d on d.col2 = b.col6

그렇지 않으면, 하위 쿼리에서 select top 1를 사용합니다.

+0

안녕 내가 내부 쿼리를 사용하면 테이블에서 모든 행에 대해 중복 행을 반환합니다. – user3375857

관련 문제