Использование соединения в SQL Server 2005 Express - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть таблица, в которой мне нужно обновляться на основе информации из другого. Я написал запрос на выборку, который прекрасно работает и показывает именно то, от чего мне нужно избавиться, но когда я пытаюсь изменить его на запрос на обновление, я получаю ошибки при присоединении. Я надеюсь, что это просто упущение, на которое кто-то может указать мне.

Вот запрос на выбор, который работает:

select * 
from CustPayShdul
JOIN ARcreditapply 
ON ARcreditapply.AplyedRefNo = CustPayShdul.ReferNo AND ARcreditapply.AplyedLocation = CustPayShdul.LocationNo
AND ARcreditapply.sequence2 = CustPayShdul.Paysequence
where ARcreditapply.PaidDate < '1/1/2012' and ARcreditapply.PaidDate < CustPayShdul.InvDate

Вот запрос на обновление, который возвращает ошибку:

update custpayshdul 
set custpayshdul.payablebalance = custpayshdul.amount
JOIN ARcreditapply 
ON ARcreditapply.AplyedRefNo = CustPayShdul.ReferNo AND ARcreditapply.AplyedLocation = CustPayShdul.LocationNo
AND ARcreditapply.sequence2 = CustPayShdul.Paysequence
where ARcreditapply.PaidDate < '1/1/2012' and ARcreditapply.PaidDate < CustPayShdul.InvDate

1 Ответ

0 голосов
/ 08 февраля 2012

Вам не хватает FROM custpayshdul до вашего присоединения.Попробуйте:

update custpayshdul
set payablebalance = custpayshdul.amount
FROM custpayshdul
JOIN ARcreditapply 
ON ARcreditapply.AplyedRefNo = CustPayShdul.ReferNo AND ARcreditapply.AplyedLocation = CustPayShdul.LocationNo
AND ARcreditapply.sequence2 = CustPayShdul.Paysequence
where ARcreditapply.PaidDate < '1/1/2012' and ARcreditapply.PaidDate < CustPayShdul.InvDate
...