2017-03-18 31 views

回答

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 
+0

這個語法解決「(分區由id訂單時間)錯誤」 – Diand

+0

@ Diand,它在我的工作很好。 – Mansoor

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 
+0

這是隻適用於3個記錄?我需要它自動應用到桌上的所有記錄。謝謝! – Diand