2017-03-18 5 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

関連する問題