Ich habe eine ExamResult-Tabelle, 2 Funktion und eine Abfrage, die ich unten setzen.übergeben Sie den Rückgabewert der Funktion als Parameter an andere Funktion in SQL-Abfrage
Ich möchte den Rückgabewert von ufn_Totalmarks als Parameter an ufn_Avermarks übergeben, um die durchschnittlichen Noten des Schülers zu erhalten, aber es gibt den Fehler "Ungültiger Spaltenname 'Totalmarks'."
Ich kann dies tun, um Funktion eins als Parameter zu Funktion 2 zu übergeben, aber in meinem realen Fall möchte ich dies nicht tun, weil es eine komplexe Funktionen und Abfrageausführung ist sehr langsam.
Dies ist nur ein Demo-Beispiel, das ich erstellt habe, um eine Frage zu stellen.
ExamResult Tabellendaten wie unten Bild:
Funktionen:
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
Abfrage:
Select [dbo].[ufn_Totalmarks](Marks1,Marks2) as Totalmarks, [dbo].[ufn_Averagemarks](Totalmarks) as AvgMarks, * from ExamResult