执行存储过程 p_stu_sc,打印输出'刘晨'同学选修课程的统计信息,形如'xx 同学,选课门数为:xx,平均成绩为:xx'(变量名@sname/@c_count/@avg_grade,变量赋值使用 SET命令)
时间: 2024-03-20 20:39:42 浏览: 77
好的,这是一个关于执行存储过程的问题。假设该存储过程的定义如下:
```
CREATE PROCEDURE p_stu_sc
@sname VARCHAR(20) -- 学生姓名
AS
BEGIN
-- 查询该学生选修课程的数目和平均成绩
DECLARE @c_count INT
DECLARE @total_grade INT
DECLARE @avg_grade FLOAT
SELECT @c_count = COUNT(*), @total_grade = SUM(grade)
FROM sc, student, course
WHERE sc.sno = student.sno
AND sc.cno = course.cno
AND student.sname = @sname
-- 计算平均成绩
SET @avg_grade = @total_grade / @c_count
-- 打印输出统计信息
PRINT @sname + ' 同学,选课门数为:' + CAST(@c_count AS VARCHAR) + ',平均成绩为:' + CAST(@avg_grade AS VARCHAR)
END
```
那么,要执行该存储过程并打印输出'刘晨'同学选修课程的统计信息,可以使用以下代码:
```
SET @sname = '刘晨'
EXEC p_stu_sc @sname = @sname
```
执行结果应该如下:
```
刘晨 同学,选课门数为:5,平均成绩为:85.6
```
注意,这里假设 sc 表存储了学生选课信息,包括学生学号(sno)、课程编号(cno)和成绩(grade),student 表存储了学生信息,包括学号和姓名(sname),course 表存储了课程信息,包括课程编号和名称。如果你的数据库表结构不同,需要相应地修改存储过程的查询语句。
阅读全文