我对 SQL 完全陌生,我必须编写一个用户定义的函数 (UDF) 来计算给定时间范围内学生的 GPA。这些输入StudentId int
,ClassStartDateStart datetime
以及ClassStartDateEnd datetime
。其中输出应该是学生在ClassStartDateStar
t 和之间参加的所有课程的 GPA ClassStartDateEnd
。此外,提供调用此新函数的脚本,将您选择的参数值传递给它。我尝试创建一个代码,但不知道从哪里开始。这是我到目前为止所拥有的:
USE [Master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION GPAofStudents
(StudentID int,
ClassStartDateStart datetime,
ClassStartDateEnd datetime)
RETURNS decimal(3,2)
AS
BEGIN
DECLARE AvgGPA decimal(5,2);
SET AvgGPA = (SELECT AVG(Class_GPA)
FROM Students_Classes
WHERE Student_ID = StudentID
AND Start_Date > ClassStartDateStart
AND Start_Date <= ClassStartDateEnd
AND Class_GPA > 0;
RETURN AvgGPA;
END;
Run Code Online (Sandbox Code Playgroud)
我给学生的桌子是这样的:
CREATE TABLE [dbo].[Students_Classes](
[Student_Class_ID] [int] …
Run Code Online (Sandbox Code Playgroud)