我有表[acc_monitor_log]
。其中为员工存储了原始事件。
我将原始日志转换为所需的基本列。
SELECT convert(char(10), al.[time], 105) [exactdate]
, convert(char(5), al.[time], 108) [exacttime]
, u.[Name]
, u.[lastname]
, u.[Badgenumber]
,[type of entry] = case when al.[state] = 1 then 'Exit' else 'Entry' end
,al.[event_point_name]
FROM [access].[dbo].[acc_monitor_log] al, [access].[dbo].[USERINFO] u
where
[time] >= '01-06-2016'
and al.[card_no] = u.[CardNo]
and u.[Name] <> 'Vizitator'
and al.[event_point_name] like '%AC-%'
所以结果是这样的。
exactdate exacttime Name lastname Badgenumber type of entry event_point_name
01-06-16 7:57 user1 user1 9 Entry Floor.5
01-06-16 12:04 user1 user1 9 Exit Floor.5
01-06-16 13:08 user1 user1 9 Entry Floor.4
01-06-16 17:27 user1 user1 9 Exit Floor.4
02-06-16 7:43 user2 user2 10 Entry Floor.5
02-06-16 12:02 user2 user2 10 Exit Floor.5
08-06-16 13:01 user2 user2 10 Entry Floor.5
08-06-16 17:29 user2 user2 10 Exit Floor.5
我需要找出在午餐时间12:00至13:00出去但在同一天没有回来的员工。令我感到困扰的是,我需要整整一个月。如果我在一天内需要它,我想我不会被这个困住。
如何从同一天排除行? 理想情况下,我需要那些当天出去但当天没有回来的员工名单。