我使用两个块来寻找相同的结果,即为新创建的列分配一个关联的值。
第1组:工作
UPDATE dbo.MyTable
SET [BorrowerAccountId]=a.Account_Id
FROM dbo.MyTable m
JOIN dbo.Account a
ON m.AppReference=a.App_Reference
第2组:没有工作。 它返回:“子查询返回的值超过1。当子查询跟随=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。”
UPDATE dbo.MyTable
SET [BorrowerAccountId]=(SELECT DISTINCT Account_Id
FROM dbo.Account a
WHERE a.App_Reference=AppReference)
实际上,我已经检查了表dbo.Account并且知道一个App_Reference只能有一个Account_Id。所以问题似乎与表dbo.Account中的数据结构无关。 我认为这应该是条款工作机制的问题。我可能会错过一些东西 干杯
答案 0 :(得分:0)
在第2块中,我认为它返回了一个包含所有Account_Id的表数据,以便在表MyTable中至少找到一次相关的App_Reference。所以它合法地包含多个价值。