有表tblclass,tblcourse,tblscore,创建一个带输入,输出参数的存储过程:对学生成绩表tblscore,根据输入的学生学号输出该学生的选修的学分总和,输出要求带有学号和学分
时间: 2024-02-19 16:03:37 浏览: 67
好的,以下是对应的存储过程代码:
```
CREATE PROCEDURE GetTotalCreditsByStudentID
@StudentID INT,
@TotalCredits INT OUTPUT
AS
BEGIN
SELECT @TotalCredits = SUM(tblcourse.Credits)
FROM tblscore
INNER JOIN tblcourse ON tblscore.CourseID = tblcourse.CourseID
WHERE tblscore.StudentID = @StudentID;
SELECT StudentID = @StudentID, TotalCredits = @TotalCredits;
END
```
存储过程接收一个输入参数 `@StudentID`,代表要查询的学生的学号;并且接收一个输出参数 `@TotalCredits`,代表该学生的选修学分总和。
在存储过程内部,使用 `SUM` 函数和 `INNER JOIN` 子句计算出该学生的选修学分总和,并将结果赋值给输出参数 `@TotalCredits`。
最后,使用 `SELECT` 语句将学生学号和选修学分总和以输出参数的形式返回。
调用该存储过程的方式如下:
```
DECLARE @TotalCredits INT;
EXEC GetTotalCreditsByStudentID @StudentID = 1001, @TotalCredits = @TotalCredits OUTPUT;
SELECT @TotalCredits;
```
其中,`@StudentID` 参数为要查询的学生的学号,`@TotalCredits` 参数为输出参数,用于接收查询结果。执行结束后,使用 `SELECT` 语句输出查询结果。
阅读全文