我正在开发一个人力资源管理web应用程序。现在我必须在这张申请表上做一份考勤报告。为此,我们有一个高级搜索报表表单,其中我们有EmployeeId、DateFrom和DateTo字段来搜索日期报表。我想使用存储过程来搜索考勤报告。
employeeId、DateFrom和DateTo所面临的问题是不具有可比性的。但是我们必须根据给定的输入来搜索它可以只有employeeId,也可以有employeeId和DateFrom,有些可以是employeeId, DateFrom, DateTo
当请求到达存储过程时,如果任何参数不存在,我必须解决null值希望你能理解我的处境……
CREATE PROCEDURE [dbo].[USP_Employees_Search]
@EmployeeId Int = Null
,@FromDate Date = Null
,@ToDate Date = Null
AS
BEGIN
Set Nocount On;
Select *
From dbo.Employees As e With (Nolock)
Where (Isnull(@EmployeeId,0) = 0 Or e.EmployeeId = @EmployeeId)
And (@FromDate Is Null Or e.[someDateAttribute] >= @FromDate)
And (@ToDate Is Null Or e.[someDateAttribute] <= @Todate)
END
GO