0

以下のコードを実行しようとしていますが、このエラーが返され続けます:

メッセージ512、レベル16、状態1、行1サブクエリは複数の値を返しました。サブクエリが=、!=、<、<=、>>、> =の後に続く場合、またはサブクエリが式として使用される場合、これは許可されません。ステートメントは終了されました。

個々のユーザーを識別するためのフィールドを作成しようとしています。助言がありますか?

UPDATE dbo.AAASTA_CONTACT
SET dbo.AAASTA_CONTACT.ALIAS_KEY =
(SELECT(SUBSTRING(COALESCE(CAST(ADDR.ADDR_ZIPCODE AS NCHAR(5)), '     ') 
        + COALESCE(CAST(UPPER(CON2.CON_LAST_NAME)AS NCHAR(5)), '     ') 
        + COALESCE(CAST(UPPER(CON2.CON_FST_NAME)AS NCHAR(5)), '     ') 
        + COALESCE(CAST(UPPER(ADDR.ADDR_ADDR_NAME) AS NCHAR(5)), '     '),1,20))
FROM dbo.AAASTA_CONTACT CON2
JOIN dbo.AAASTA_ADDR_PER ADDR
ON (CON2.CON_PERSON_UID = ADDR.T_ADDR_PER_PER_ID))
4

1 に答える 1

1

これがあなたが探しているものだと思います。各行を正しい値で更新します。

UPDATE 
    dbo.AAASTA_CONTACT
SET 
    dbo.AAASTA_CONTACT.ALIAS_KEY = SUBSTRING(COALESCE(CAST(ADDR.ADDR_ZIPCODE AS NCHAR(5)), '     ') + COALESCE(CAST(UPPER(CON2.CON_LAST_NAME)AS NCHAR(5)), '     ')  + COALESCE(CAST(UPPER(CON2.CON_FST_NAME)AS NCHAR(5)), '     ') + COALESCE(CAST(UPPER(ADDR.ADDR_ADDR_NAME) AS NCHAR(5)), '     '),1,20)
FROM 
    dbo.AAASTA_CONTACT CON2
JOIN 
    dbo.AAASTA_ADDR_PER ADDR
    ON (CON2.CON_PERSON_UID = ADDR.T_ADDR_PER_PER_ID)
于 2012-09-10T21:10:47.277 に答える