select a.* from 表 a,(select 姓名,min(时间) as 时间 from 表 group by 姓名) b where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())<=12 union select a.* from 表 a,(select 姓名,min(时间) as 时间 from 表 group by 姓名) b where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())>12
select a.* from 表 a,(select 姓名,max(时间) as 时间 from 表 group by 姓名) b where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())<=12 union select a.* from 表 a,(select 姓名,min(时间) as 时间 from 表 group by 姓名) b where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())>12
select * from (select 編號,姓名,班別 ,min(時間) as 時間 from tb where 班別='上班签到' group by 編號,姓名,班別 union all select 編號,姓名,班別 ,min(時間) as 時間 from tb where 班別='下班签到' group by 編號,姓名,班別)a order by 編號,時間
不过问题又来了。
这里我举的例子是已知只有两个人。
但是如果表的内容是从外部导入的,不知道总共会有多少人呢?
from 表 a,(select 姓名,min(时间) as 时间 from 表 group by 姓名) b
where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())<=12
union
select a.*
from 表 a,(select 姓名,min(时间) as 时间 from 表 group by 姓名) b
where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())>12
from 表 a,(select 姓名,max(时间) as 时间 from 表 group by 姓名) b
where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())<=12
union
select a.*
from 表 a,(select 姓名,min(时间) as 时间 from 表 group by 姓名) b
where a.姓名=b.姓名 and a.时间=b.时间 and datename(hour,getdate())>12
(select 編號,姓名,班別 ,min(時間) as 時間 from tb where 班別='上班签到' group by 編號,姓名,班別
union all
select 編號,姓名,班別 ,min(時間) as 時間 from tb where 班別='下班签到' group by 編號,姓名,班別)a
order by 編號,時間