我有一个带有JOIN的更新,SQL Server 2012.我只需要将ScheduledStatusChange.Reason中的数据复制到Account.CancellationReason。有7个ScheduledStatusChange记录,每个匹配的Acccount记录有2条记录(共计14条记录,而不是7条记录)。
因此,当我尝试进行下面的更新时,我收到以下错误消息:" Subquery返回的值超过1。"这是更新:
update gym.account
set CancellationReason = left(ltrim(rtrim(s.Reason)),50)
from gym.scheduledstatuschange s
join gym.account a
on s.AccountID = a.AccountID
where s.Applied = 1
and s.StartStatusID = 2
and a.membershipstatusid = 2
and isnull(ltrim(rtrim(a.CancellationReason)),'') = ''
and isnull(ltrim(rtrim(s.Reason)),'') <> ''
and s.scheduledstatuschangeid not in (5169,8370,6669,4617,6707,4727,5048)
注意最后一行。我过滤掉带有重复项的7条记录,但我仍然得到同样的错误。现在我被卡住了。