编写一个存储过程可以计算上课人数
时间: 2023-07-01 14:06:41 浏览: 84
好的,以下是一个简单的存储过程,可以计算上课人数:
```sql
CREATE PROCEDURE calculate_attendance
@class_id INT,
@date DATE,
@attendance_count INT OUTPUT
AS
BEGIN
SET @attendance_count = (
SELECT COUNT(*)
FROM attendance
WHERE class_id = @class_id
AND attendance_date = @date
)
END
```
该存储过程接受三个参数:`@class_id` 表示课程的 ID,`@date` 表示考勤日期,`@attendance_count` 用于返回上课人数。
存储过程会查询 `attendance` 表,根据 `class_id` 和 `attendance_date` 进行筛选,返回符合条件的记录数,即上课人数,最后将结果存储在 `@attendance_count` 中。
使用方法如下:
```sql
DECLARE @attendance_count INT
EXEC calculate_attendance @class_id = 1, @date = '2021-09-01', @attendance_count = @attendance_count OUTPUT
SELECT @attendance_count AS attendance_count
```
其中,`@class_id` 和 `@date` 分别指定课程 ID 和考勤日期,`@attendance_count` 则用于接收计算结果,最后通过 `SELECT` 语句输出结果。