我有以下 SQL Server 2008 表:
ID 目的地 最后结果 01 (555) 319-5170 断开连接 02 (555) 319-5170 重复 03 (555) 319-5170 重复 04 (555) 261-5000 重复 05 (555) 261-5000 重复 06 (555) 261-7325 忙 07 (555) 261-7325 重复 08 (555) 261-7345 无应答 09 (555) 261-7345 重复
我的目标是为所有匹配的电话号码动态设置“最后结果”列。因此,在上面的 Destination((555) 319-5170) 示例表中,所有匹配电话号码 (555) 319-5170) 的结果为“断开连接”。示例更新语句如下:
更新 C SET [最后结果] = ( 选择目的地 从呼叫 WHERE [Last Result] NOT IN('重复','没有电话号码') 按目的地分组 HAVING COUNT(目的地) > 1) FROM 呼叫 C 内部联接 ( 选择目的地 从呼叫 WHERE [Last Result] NOT IN('重复','没有电话号码') 按目的地分组 HAVING COUNT(目的地) > 1 ) Dup ON Dup.Destination = C.Destination WHERE C.[Last Result] NOT IN ('Duplicate','No Phone #')
但我收到一个错误:
消息 512,级别 16,状态 1,第 1 行
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
**预期输出**: ID 目的地 最后结果 01 (555) 319-5170 断开连接 02 (555) 319-5170 断开连接 03 (555) 319-5170 断开连接 04 (555) 261-5000 重复 05 (555) 261-5000 重复 06 (555) 261-7325 忙 07 (555) 261-7325 忙 08 (555) 261-7345 无应答 09 (555) 261-7345 无应答
提前感谢您提供可能的解决方案的任何帮助。