0

次のようなストアド プロシージャがあります。

create proc calcaulateavaerage
@studentid int
as
begin

-- some complicated business and query

return @result  -- single decimal value 
end

そして、私はしたいです

結果全体を作成する

select * , ................................ from X where X.value >  (calculateaverage X.Id)

「マルチパート識別子calculateaverageをバインドできませんでした」のようなエラーが常に発生します。それを解決する方法はありますか?

4

2 に答える 2

4

ストアド プロシージャは必要ありません。関数が必要です。

于 2013-06-20T18:03:15.400 に答える
2

出力変数を使用して、ストアド プロシージャからデータを出力します。

create proc calcaulateavaerage
@studentid int, @result int
as
begin

-- some complecated business and query

select @result = id from sometable;
end

-- Declaring output variable named result;
declare @result int;
-- Passing output variable to stored procedure.
exec calculateaverage 1, @result;

-- Now you can display the result or do whatever you like.
print @result 
于 2013-06-20T18:05:57.693 に答える