SQL Server 2005でストアドプロシージャを作成しようとしています。行が存在する場合は、その行のMerchantIDが返されます。それ以外の場合は、CompanyName、City、StateをチェックしてMerchanTIDを取得します。それ以外の場合は何も表示されません。しかし、私はこのエラーが出ている "サブクエリが1つ以上の値を返しましたサブクエリが次のように続く場合、これは許可されません ' CheckifMerchantexistsのプロシージャは、NULLのステータスを返そうとしましたが、許可されません。代わりに0のステータスが返されます。ご協力いただきありがとうございます。sqlクエリで2つ以上の値のサブクエリが返されました
ALTER PROCEDURE [dbo].[CheckifMerchantexists]
(@CompanyName varchar(50)
,@Phone varchar(15)
,@City varchar(30)
,@State varchar(2)
)
AS
BEGIN
declare @MerchantID int
set @MerchantID = (Select MerchantID from Merchant where Phone = @Phone)
IF @MerchantID = null
Begin
set @MerchantID = (Select MerchantID from Merchant where CompanyName = @CompanyName and City = @City and State = @State)
return @MerchantID
END
else
Begin
return @MerchantID
End
は、あなたが複数の商人を持っていることを期待します同じ電話で?そうでない場合は、おそらく制約を追加するか、PhoneをMerchantテーブルにプライマリキーにする必要があります。 – Khan