使用SQLserver语句创建存储过程,要求按条件查询,开始日期,结束日期,查询,要求体现按单个任意条件或组合条件查询,要求按字符串查询 要求查询消费记录,体现日期、工号、姓名、日消费金额、日消费次数 要求默认查询当月范围
时间: 2024-03-07 16:50:34 浏览: 73
好的,根据您的要求,我可以提供一个简单的 SQL Server 存储过程,用于按条件查询消费记录。以下是存储过程的代码:
```
CREATE PROCEDURE query_consumption
@start_date DATE = NULL,
@end_date DATE = NULL,
@employee_id INT = NULL,
@employee_name VARCHAR(255) = NULL,
@search_string VARCHAR(255) = NULL
AS
BEGIN
SET NOCOUNT ON;
DECLARE @default_start_date DATE;
DECLARE @default_end_date DATE;
SET @default_start_date = DATEADD(mm, DATEDIFF(mm,0,GETDATE()), 0);
SET @default_end_date = EOMONTH(GETDATE());
IF @start_date IS NULL
SET @start_date = @default_start_date;
IF @end_date IS NULL
SET @end_date = @default_end_date;
SELECT [date], employee_id, employee_name, SUM(amount) AS total_amount, COUNT(*) AS total_count
FROM consumption
WHERE (@start_date IS NULL OR [date] >= @start_date)
AND (@end_date IS NULL OR [date] <= @end_date)
AND (@employee_id IS NULL OR employee_id = @employee_id)
AND (@employee_name IS NULL OR employee_name LIKE '%' + @employee_name + '%')
AND (@search_string IS NULL OR
CONCAT([date], employee_id, employee_name, amount) LIKE '%' + @search_string + '%')
GROUP BY [date], employee_id;
END;
```
该存储过程接受五个参数,分别为开始日期、结束日期、员工编号、员工姓名和搜索字符串。如果某个参数为 NULL,则使用默认值。默认情况下,存储过程会查询当月的消费记录。
查询结果包括日期、员工编号、员工姓名、日消费总金额和日消费次数。查询条件可以是单个条件或多个条件的组合,并且可以按字符串进行查询。
希望以上信息能够对您有所帮助,如有任何问题,请随时与我联系。
阅读全文