테이블 (PartsPricing)에서 가격을 업데이트하기 위해 다음 쿼리를 작성하고 있습니다.
Update PartsPricing
set ppPrice = CEILING((select PP.ppPrice from
#tmp_PartstoUpdate TPU join PartsPricing PP
on TPU.ppPartNumber = PP.ppPartNumber
where PP.ppConditionID = 9 and PP.ppDeleted = 0)*.5)
where ppID in (select ppID from #tmp_PartstoUpdate)
쿼리를 실행할 때 다음 오류가 발생합니다.
Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.
나는 온라인에서 찾을 수있는 모든 가능한 해결책을 시도했지만 그들 중 어느 것도 작동하지 않는 것 같았다. 어떤 도움을 주시면 감사하겠습니다.
대신 이것을 시도하십시오. 이것은 기본적으로 동일해야합니다.
Update PP
set ppPrice = CEILING(PP.ppPrice * 0.5)
FROM PartsPricing PP
INNER JOIN #tmp_PartstoUpdate TPU
ON TPU.ppPartNumber = PP.ppPartNumber
where PP.ppConditionID = 9 and PP.ppDeleted = 0
문제는 하위 쿼리가 둘 이상의 행을 반환하여 SQL Server가 중단된다는 것입니다. 그는 하나의 값으로 여러 행을 곱하고 다른 값에 할당 할 수 없습니다 (집계를 사용하지 않는 한).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다