0
私はExamResultテーブル、2関数、および以下に示すクエリを持っています。関数の戻り値をSQL関数のその他の関数のパラメータとして渡します。
ufn_Averagemarksにufn_Totalmarks関数の戻り値をパラメータとして渡して、学生の平均マークを取得したいが、エラー "無効な列名 'Totalmarks'が返されます。
関数2をパラメータとして関数1を渡すことはできますが、複雑な関数とクエリの実行が非常に遅いため、私の実際のケースでは実行したくありません。
これは私が質問するために作成したデモの例です。画像の下として
ExamResult表データ:
機能:
CREATE FUNCTION [dbo].[ufn_Totalmarks]
(
@Marks1 int,
@Marks2 int
)
RETURNS int
AS
BEGIN
-- Declare the return variable here
DECLARE @Result int
SELECT @Result = @Marks1 + @Marks2
return @Result
END
GO
CREATE FUNCTION [dbo].[ufn_Averagemarks]
(
@TotalMarks int
)
RETURNS int
AS
BEGIN
-- Declare the return variable here
DECLARE @Result int
SELECT @Result = @TotalMarks/2
return @Result
END
GO
問合せ:
Select [dbo].[ufn_Totalmarks](Marks1,Marks2) as Totalmarks, [dbo].[ufn_Averagemarks](Totalmarks) as AvgMarks, * from ExamResult