顧客の郵便番号の最初の3桁で顧客に関連付けられている営業担当者がいます。これは米国の顧客のみを対象としています。Profile_Zipテーブルには、郵便番号の最初の3桁の担当者とThree_Digitsを表す2つの列Profile_Keyがあります。
Profile_Key Three_Digits
123456 610
123456 611
123456 612
顧客のレコードを保持するプロファイルテーブルの2つのフィールドは、Zip(郵便番号)と営業担当者のProfile_Keyを保持するAssociationフィールドです。
顧客のassociation_keyを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が正しい/最適なルートであるかどうかがわかりません。
サブクエリは複数の値を返しました。サブクエリが=、!=、<、<=、>、> =の後に続く場合、またはサブクエリが式として使用される場合、これは許可されません。
これを行う別の方法はありますか?ありがとう。
プロファイルテーブル。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