2017-12-19 3 views
-1

나는 그러나 오류SQL UPDATE 문 작동하지 않습니다 - SQL 서버

을 받고, 아래의 SQL 문 (SQL 서버)를 실행하는 것을 시도하고있다 "UPDATE에 FROM 절과 문을 하위 쿼리 소스를 포함하거나 결합 할 수 없습니다 삭제합니다."

update fp 

set fp.totalcapacity = hc.totalcapacity, 
fp.sellablecapacity = hc.sellablecapacity 

from [fact].[FinalPosition] fp 

join fact.[HotelCapacity] hc 
on fp.hotelkey = hc.hotelkey 
and fp.staydate = hc.staydate 

where fp.staydate = '2016-06-18' 

나는이 오류를 얻고있다 이유를 알 수없는 것. 어떤 생각?

+1

'fp'는 실제 테이블 또는 별칭입니까? –

+0

죄송합니다. 잘못된 검색어를 복사했습니다. 지금 편집했습니다. fp는 실제 테이블입니다. 위 쿼리가 작동하지 않습니다. – Sharingan

+0

set 문에서'fp' 별칭을 참조하지 마십시오. 그게 네 문제 야. 아래 Gordon의 대답을보십시오. –

답변

3

난 당신이 원하는 구문은 생각 :

update fp 
    set totalcapacity = hc.totalcapacity, 
     sellablecapacity = hc.sellablecapacity 
    from fp join 
     fact.[HotelCapacity] hc 
     on fp.hotelkey = hc.hotelkey and fp.staydate = hc.staydate 
    where fp.staydate = '2016-06-18'; 

당신이 fp 실제 테이블을 참조 할 경우

이, 그리고 from 절에서 fp 테이블의 별칭을 만드는 것이 포함되어 있습니다.

+0

죄송합니다. 실수로 잘못된 쿼리를 복사했습니다. 올바른 쿼리를 지금 조정했습니다. – Sharingan

+0

를 작동하지 않는 것은 그것이 FP를 업데이트하도록 변경 세트 totalcapacity = hc.totalcapacity, sellablecapacity = hc.sellablecapacity [사실]. [FinalPosition] FP 가입 사실에서 . HotelCapacity] HC에 fp.hotelkey ​​= HC .hotelkey ​​ 및 fp.staydate = hc.staydate 여기서 fp.staydate = '2016-06-18' – Sharingan

+0

@Sharingan. . . 어떤 버전의 SQL Server를 사용하고 있습니까? 업데이트에서'join '은 오래 동안 지원되었지만 영원히는 지원되지 않았습니다. –