创建存储过程,根据输入学号统计并显示该生成绩信息,包括总分、平均分、不及格门数
时间: 2024-03-17 19:46:55 浏览: 63
好的,我可以帮你写出一个SQL Server的存储过程来实现这个功能。请注意,下面的代码仅供参考,您需要根据实际情况做出相应的修改。
```sql
CREATE PROCEDURE GetScoreInfo
@StudentID INT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @TotalScore INT = 0;
DECLARE @AvgScore FLOAT = 0;
DECLARE @FailCount INT = 0;
-- 计算总分和平均分
SELECT @TotalScore = SUM(Score), @AvgScore = AVG(Score)
FROM Scores
WHERE StudentID = @StudentID;
-- 计算不及格门数
SELECT @FailCount = COUNT(*)
FROM Scores
WHERE StudentID = @StudentID AND Score < 60;
-- 显示结果
PRINT '学号为 ' + CAST(@StudentID AS VARCHAR) + ' 的学生成绩信息如下:';
PRINT '总分: ' + CAST(@TotalScore AS VARCHAR);
PRINT '平均分: ' + CAST(@AvgScore AS VARCHAR);
PRINT '不及格门数: ' + CAST(@FailCount AS VARCHAR);
END
```
在上述代码中,我们首先声明了三个变量 @TotalScore、@AvgScore 和 @FailCount,分别用于存储总分、平均分和不及格门数。然后,我们分别使用两个 SELECT 语句来计算总分和平均分以及不及格门数。最后,我们使用 PRINT 语句将结果输出到控制台。
使用该存储过程非常简单,只需要传入学号参数即可:
```sql
EXEC GetScoreInfo 1001;
```
假设我们要查询学号为 1001 的学生的成绩信息,则可以执行上述代码来获取结果。
阅读全文