1、某一位员工在指定时间段里每一天的最早和最迟打卡记录
select min(card_no) card_no,min(fname) fname,min(rec_dat) start_time,max(rec_dat) end_time
from EV_LOG
where card_no='员工卡号' and evnt_descrp='Access granted'
and convert(varchar(10),rec_dat,120) between '2013-07-01' and '2013-07-16'
group by convert(varchar(10),rec_dat,120)
3、 所有员工在指定时间段里每一天的最早和最迟打卡记录
select card_no,min(fname) fname,min(rec_dat) start_time,max(rec_dat) end_time
from EV_LOG
where evnt_descrp='Access granted'and
convert(varchar(10),rec_dat,120) between '2013-07-01' and '2013-07-16'
group by card_no,convert(varchar(10),rec_dat,120)
2和4就不写了,用datediff(hh,start_time,end_time)就可以了
是这个意思吗?
select card_no, fname,min(开始时间) as 开始时间,max(结束时间)as结束时间,datediff(hh,开始时间,结束时间)
from 表
where 时间 between '开始' and '结束'
不是特明白LZ的意思。感觉是俩个表一个个人的一个所有人的。
用between and 就很好解决。
嘿嘿,考虑考虑