【发布时间】:2018-10-27 13:29:55
【问题描述】:
表 1(关键字段 - ID、帐户)
- Id、Account、SalesRepID
表 2(关键字段 - ID、帐户、代码)
- Id、Account、Sequence、SalesRepID
当 Table2.Sequence = 1 时,应使用 Table2.SalesRepID 更新 Table1.SalesRepID。(有 10 个序列,每个序列都有一个 SalesRedID)。
UPDATE Table1 SET SalesRepID =
(select SalesRepID from Table2
where Table1.ID = Table2.ID and
Table1.Account = Table2.PatientAccount and Table2.Sequence = 1)
这会引发错误 -
子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
请让我知道应该在更新声明中修复什么? 应该使用 MERGE 吗?
【问题讨论】:
-
如果
Table2.Sequence = 1的记录不止一条,那么您的更新逻辑本身就没有意义,因为您不清楚要使用哪个 值在更新中。为获得最佳结果,请在您的问题中添加一些示例数据。
标签: sql sql-server merge