报告每日出勤,门事件数据库

时间:2016-06-10 06:16:32

标签: sql sql-server-2005

我有表[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出去但在同一天没有回来的员工。令我感到困扰的是,我需要整整一个月。如果我在一天内需要它,我想我不会被这个困住。

如何从同一天排除行? 理想情况下,我需要那些当天出去但当天没有回来的员工名单。

0 个答案:

没有答案