select emp_id,name,min(cdatetime),max(cdatetime)
from (select *,
(select count(*) 'ii'
from vwDO_Test b where b.emp_id=a.emp_id
and b.cdatetime <=a.cdatetime)ii from vwDO_Test a)c
group by emp_id,name,DATEADD(day,-c.ii,cdatetime) having count(*)> =7
order by emp_id
转载于:https://www.cnblogs.com/Doitman/archive/2011/03/29/1998697.html