0

以下の SQL でこのエラーが発生します。

サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。

誰かが私がそれを解決する方法を知っていますか?

 use character

 DECLARE @guild_codex varchar(25)
 DECLARE @character_name0 varchar(40)
 DECLARE @user_no0 varchar (25), @id varchar (25)
 DECLARE @user_no varchar (25), @group_id varchar (25), @amount varchar (25)
 DECLARE @free_amount varchar(25), @2mx_Leader varchar(3), @2mx_member varchar (3)

 SET @2mx_Leader = 700 SET @2mx_member = 500 SET @id = (SELECT id from
 [PC-ID].[Cash].[dbo].[user_cash] where free_amount LIKE 0) SET
 @user_no = (SELECT user_no from [PC-ID].[Cash].[dbo].[user_cash]
 where free_amount LIKE 0) SET @group_id = (SELECT group_id from
 [PC-ID].[Cash].[dbo].[user_cash] where free_amount LIKE 0) SET
 @amount =  (SELECT amount from [PC-ID].[Cash].[dbo].[user_cash]
 where free_amount LIKE 0) SET @free_amount =  (SELECT free_amount from
 [PC-ID].[Cash].[dbo].[user_cash] where free_amount LIKE 0) SET
 @guild_codex = (SELECT guild_code from siege_info where siege_tag LIKE'Y')

 SET @character_name0 = (SELECT character_name  from guild_char_info
 where guild_code LIKE @guild_codex and peerage_code LIKE 0) SET
 @user_no0 = (SELECT user_no from user_character where character_name
 LIKE @character_name0)   
 use cash   
 UPDATE user_cash SET
 amount=amount+@2mx_Leader WHERE user_no = @user_no0
4

1 に答える 1

0

SQL に関する複数の問題

複数の変数に値を割り当てるには、同じテーブルから同じ where 句を使用して選択し、次のように 1 回の呼び出しで行うことができますが、DB への複数のトリップを作成します。

   SELECT
        @id = id,
        @user_no = user_no,
        @group_id = group_id,
        @amount = amount,
        @free_amount = free_amount
    FROM [PC-ID].[Cash].[dbo].[user_cash]
    WHERE free_amount LIKE 0

エラー メッセージに記載されているように、複数行のデータを返す可能性がある LIKE を使用しています。できれば = を使ってみてください。または、変数の入力を担当する Select ステートメントを実行して、複数のデータ行が返されるかどうかを確認してください。

ラージ

于 2013-05-14T04:37:23.403 に答える