创建存储过程p_getbysno,根据指定的课程名得到学生的选课人数和及格人数,并调用存储过程:
时间: 2023-07-04 19:26:44 浏览: 84
好的,以下是创建存储过程p_getbysno的SQL语句:
```
CREATE PROCEDURE p_getbysno
@sno VARCHAR(20)
AS
BEGIN
SELECT
COUNT(*) AS total_num,
SUM(CASE WHEN score >= 60 THEN 1 ELSE 0 END) AS pass_num
FROM
SC
INNER JOIN
Course
ON SC.cno = Course.cno
WHERE
Course.cname = @sno;
END
```
这个存储过程的作用是:根据指定的课程名得到选该课程的学生人数和及格人数。
如果要调用该存储过程,可以使用以下SQL语句:
```
EXEC p_getbysno '计算机基础';
```
其中,'计算机基础'是要查询的课程名,可以根据需要修改。执行该语句后,就可以得到选修该课程的学生人数和及格人数。
相关问题
创建存储过程p_getbysno,根据指定的学号得到学生的选课门数和总分
好的,以下是创建存储过程p_getbysno的SQL语句:
```
CREATE PROCEDURE p_getbysno(IN sno VARCHAR(20), OUT course_num INT, OUT total_score FLOAT)
BEGIN
SELECT COUNT(*) INTO course_num, SUM(score) INTO total_score FROM score WHERE sno = sno;
END
```
这个存储过程接受一个学号作为参数,返回该学生选课门数和总分。其中,IN表示输入参数,OUT表示输出参数。在存储过程体中,使用SELECT语句查询score表,得到该学生选课门数和总分,然后将结果赋值给对应的输出参数。
mysql创建存储过程p_getbysno,根据指定的学号得到学生的选课门数和总分
好的,以下是创建存储过程p_getbysno的SQL语句:
```
CREATE PROCEDURE p_getbysno(IN sno INT, OUT course_count INT, OUT total_score FLOAT)
BEGIN
SELECT COUNT(*) INTO course_count, SUM(score) INTO total_score
FROM score
WHERE sno = sno;
END
```
该存储过程有一个输入参数sno,代表学号;有两个输出参数course_count和total_score,分别代表该学生选课门数和总分。在存储过程内部,使用SELECT语句查询score表,使用COUNT函数统计选课门数,使用SUM函数统计总分,并将结果赋值给输出参数。注意,这里的输入参数和输出参数都要使用IN和OUT关键字声明。
阅读全文