我有销售代表通过客户邮政编码的前三位数字与他们的客户相关联 - 这仅适用于美国客户。Profile_Zip 表有两列 Profile_Key 代表邮政编码的前三位数字的 Rep 和 Three_Digits。
Profile_Key Three_Digits
123456 610
123456 611
123456 612
Profile 表中保存客户记录的两个字段是 Zip(邮政编码)和一个保存销售代表 Profile_Key 的 Association 字段。
我需要运行一个查询,使用 Profile_Zip 表中代表的配置文件密钥更新客户的关联密钥。这就是我一直在使用的。
update profile set association_key =
(select profile_key from profile_zip where three_digits =
(Select substring(zip, 1, 3) as ZipPrefix
From profile group by profile.zip))
我知道为什么会出现此错误,我不知道如何使查询正常工作,或者 Substring 是否是正确/最佳的选择。
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
还有另一种方法可以做到这一点吗?谢谢。
配置文件表。John Doe 是代表 (profile_type = 4),Mary 是客户 (profile_type = 6)。John 的 profile_key 在 Mary 的 Association_key 字段中,这就是绑定它们的原因。记录中当然还有更多字段(地址、电话等)
Profile_key Profile_Type_Key First_Name Last_Name Zip Association_Key ...
123456 4 John Doe 92112
987654 6 Mary Smith 90210 123456