答案 0 :(得分:0)
Declare @table table (rowno int identity (1,1),id varchar(10),[time] time)
insert into @table
select '01','10:08:23'
union all
select '02','10:10:50'
union all
select '01','13:30:00'
;with cte as
(
select *,row_number()over(partition by id order by id)n from @table
)select id,time,case when n=1 then 'checkin' else 'checkout'end status from cte order by rowno
答案 1 :(得分:0)
使用ROW_NUMBER概念:
SELECT id , time , CASE WHEN MIN(RNo) = 1 THEN 'CheckIn' WHEN MAX(RNo) > 1
THEN 'CheckOut' END
FROM
(
SELECT * , ROW_NUMBER() OVER (PARTITION BY id ORDER BY time) RNo
FROM @table
) A
GROUP BY id , time