2014-12-04 3 views
0

"TravelAgencyTypeCode"열의 값을 기반으로 "dbo.ReservationStay"의 "TravelAgencyID2"라는 열의 값을 업데이트해야합니다. 의 "dbo.TravelAgency".SQL CASE 문을 작성하여 다른 테이블의 다른 열 값을 기반으로 열을 업데이트하십시오.

업데이트 상태는 다음과 같습니다. dbo.TravelAgency의 TravelAgencyTypeCode가 'DMC'와 같지 않으면 TravelAgencyID2 = TravelAgencyID (dbo.ReservationStay에서)이면 ELSE TravelAgencyID2는 변경되지 않습니다.

+3

그리고 무엇을 시도 했습니까? –

+2

당신은 당신의 묘사에 거의 질의를했습니다. 제발 노력을 게시 할 수 있습니까? –

+0

조건이 다른 테이블의 열에 의존 할 때 막혔습니다! 두 개의 열이 같은 테이블에있을 때 CASE 문을 쓸 수는 있지만 어떻게 처리해야하는지 알 수 없습니다. – user3115933

답변

1

그래서 이러한 행을 업데이트해야합니다. WHERE 조건이 충족 되었습니까?

UPDATE rs 
SET rs.TravelAgencyID2 = rs.TravelAgencyID 
FROM ReservationStay rs 
    INNER JOIN TravelAgency ta on rs.TravelAgencyID2 = ta.ID 
WHERE ta.TravelAgencyTypeCode != 'DMC' 

이렇게하면 다른 것을 건드리지 않고 필요한 행만 업데이트됩니다.

+0

감사합니다. 내가 JOIN을 UPDATE에서 사용할 수 없다고 생각 했으므로이 점을 이해할 수 없었을 것입니다. – user3115933

+0

그렇습니다. 혼란스럽지 않으므로 SQL을 배우므로 흔히 혼란 스럽습니다. :) UPDATE .. FROM 구문의 어느 부분이 표준인지, 어떤 SQL Server 특정 버전인지는 잘 모르겠습니다. 완료된 일 ... – SWeko

관련 문제