問題:請假單開始時間與結束時間,進行校驗已請假事件表時間值。校驗開始時間與結束時間之間是否存在已請假的日期,而且返回最小時間值。sql
例如: 員工張三,工號s0001 提交請假申請單,開始時間2020-03-01,結束時間2020-04-15ide
但願能夠校驗員工張三,在提交的請假申請單中,開始時間與結束時間之間是否存在已申請過的假期時間,而且返回最小值做爲提醒。
blog
由於事實上員工張三,已經在2020-04-10 與2020-04-11已經請過假期了。但願能夠經過返回值進行提醒
事件
建立表已請假事件表C4 包含名字、工號、請假時間it
CREATE TABLE c4( ID INT identity(1,1) NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, name_id VARCHAR(50) NOT NULL, SQ_date date not NULL )
插入數據class
INSERT INTO c4(name,name_id,SQ_date) VALUES('李四','S0001','2020-04-10'), ('李四','S0001','2020-04-11'), ('張三','S0002','2020-04-10'), ('王五','S0003','2020-04-10')
設定查詢變量 開始時間@startime、 結束時間@endtime、 工號@name_id
變量
設置變量 @starttime 初始值 2020-03-01 設置變量 @endtime 初始值 2020-04-15 設置變量 @name_id初始值 s0001 查詢包含在開始與結束時間內的最小值的時間 DECLARE @starttime date,@endtime date,@name_id VARCHAR(50) SET @starttime = '2020-03-01' SET @endtime = '2020-04-15' SET @name_id = 's0001' SELECT min(SQ_date) as 請假時間 FROM c4 WHERE (SQ_date BETWEEN @starttime AND @endtime) AND name_id = @name_id