SQL数据库存储过程输入课程名,查询该门课程考试的总成绩、选修人数
时间: 2023-08-16 10:09:39 浏览: 50
好的,以下是一个示例SQL存储过程,用于查询指定课程的考试总成绩和选修人数:
```
CREATE PROCEDURE GetCourseInfo
@CourseName VARCHAR(50)
AS
BEGIN
SELECT SUM(Score) AS TotalScore, COUNT(DISTINCT StudentID) AS CourseStudents
FROM Scores
WHERE CourseName = @CourseName
END
```
在此存储过程中,我们定义了一个输入参数 @CourseName,它表示要查询的课程名称。然后,我们使用 SUM() 聚合函数计算指定课程的考试总成绩,使用 COUNT() 函数计算选修指定课程的学生人数。在 WHERE 子句中,我们使用课程名称来筛选出对应的记录。
你可以根据具体的需求来修改此存储过程,并按照以下方式调用它:
```
EXEC GetCourseInfo @CourseName = 'Math'
```
此命令将返回数学课程的考试总成绩和选修人数。
相关问题
SQL数据库存储过程 输入课程号 查询该课程不及格的学生学号姓名
好的,以下是一个简单的 SQL 存储过程,可以输入课程号,查询该课程不及格的学生学号和姓名:
```
CREATE PROCEDURE GetFailedStudentsByCourse
@CourseID VARCHAR(10)
AS
BEGIN
SELECT 学号, 姓名
FROM 学生
WHERE 学号 IN (
SELECT 学号
FROM 成绩
WHERE 课程号 = @CourseID AND 成绩 < 60
)
END
```
在这个存储过程中,我们使用了一个输入参数 `@CourseID`,它用于指定要查询的课程号。存储过程使用了与前面 SQL 查询语句类似的语法,但是在执行时需要传入参数。您可以在 SQL Server Management Studio 或其他数据库客户端中执行这个存储过程,并传入具体的课程号来查询该课程不及格的学生学号和姓名。
数据库查询选修课程c001的学生人数和该课程有成绩的人数
好的,根据您的要求,我可以为您提供以下 SQL 查询语句来获得选修课程 c001 的学生人数和该课程有成绩的人数:
```
SELECT
COUNT(DISTINCT student_id) AS total_students,
COUNT(DISTINCT CASE WHEN score IS NOT NULL THEN student_id END) AS students_with_score
FROM
Score
WHERE
course_id = 'c001';
```
这个查询语句使用了 COUNT 函数和 DISTINCT 关键词,分别计算选修课程 c001 的学生总人数和有成绩的学生人数。其中,第二个 COUNT 函数使用了 CASE 语句来判断学生是否有成绩,如果有成绩则计入统计中。同时,使用 WHERE 子句来筛选出选修课程为 c001 的记录。
希望这个查询语句能够帮助到您!