使用sql语句创建存储过程,要求按条件查询,开始日期,结束日期,查询,要求体现按单个任意条件或组合条件查询,要求按字符串查询 1、要求查询消费记录,体现日期、工号、姓名、日消费金额、日消费次数 2、要求默认查询当月范围
时间: 2023-08-18 10:08:02 浏览: 54
好的,以下是创建存储过程的 SQL 语句,可以实现按条件查询消费记录,并默认查询当月范围:
```sql
CREATE PROCEDURE query_consumption_records
(
IN start_date DATE,
IN end_date DATE,
IN employee_id VARCHAR(10),
IN employee_name VARCHAR(20),
OUT result_cursor CURSOR
)
BEGIN
DECLARE default_start_date DATE;
DECLARE default_end_date DATE;
SET default_start_date = DATE_FORMAT(NOW(), '%Y-%m-01');
SET default_end_date = LAST_DAY(NOW());
IF start_date IS NULL THEN SET start_date = default_start_date; END IF;
IF end_date IS NULL THEN SET end_date = default_end_date; END IF;
IF employee_id IS NULL THEN SET employee_id = ''; END IF;
IF employee_name IS NULL THEN SET employee_name = ''; END IF;
OPEN result_cursor FOR
SELECT date, employee_id, employee_name, SUM(amount) AS total_amount, COUNT(*) AS total_count
FROM consumption_records
WHERE (date BETWEEN start_date AND end_date)
AND (employee_id LIKE CONCAT('%', employee_id, '%'))
AND (employee_name LIKE CONCAT('%', employee_name, '%'))
GROUP BY date, employee_id, employee_name
ORDER BY date ASC, employee_id ASC;
END;
```
此存储过程接受四个输入参数:开始日期、结束日期、工号和姓名。其中,开始日期和结束日期可以为空,表示查询当月范围;工号和姓名也可以为空,表示不按照工号和姓名查询。
此存储过程返回一个游标,包含查询结果,结果按日期和工号排序,包含日期、工号、姓名、当日消费总金额和当日消费总次数。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)