I want to ask, how to make output below :
x
Date NIP Clock_in Clock_out
24/03/2020 15017 8:00:02 18:27:12
24/03/2020 H8137 8:08:01 14:22:50
from data like this below :
NIP TimeStamps
15017 2020-03-24 08:00:02.550
15017 2020-03-24 08:01:00.117
15017 2020-03-24 08:05:30.440
15017 2020-03-24 08:05:37.397
15017 2020-03-24 08:06:25.160
H8137 2020-03-24 08:08:01.537
15017 2020-03-24 10:41:15.500
H8137 2020-03-24 11:40:37.327
H8137 2020-03-24 11:41:43.750
H8137 2020-03-24 13:25:01.000
H8137 2020-03-24 14:11:26.000
H8137 2020-03-24 14:11:39.000
H8137 2020-03-24 14:22:50.000
15017 2020-03-24 18:26:10.000
15017 2020-03-24 18:26:16.000
15017 2020-03-24 18:26:46.000
15017 2020-03-24 18:26:51.000
15017 2020-03-24 18:27:06.000
15017 2020-03-24 18:27:12.000
with rules the ‘Clock_in’ is the earliest and ‘Clock_out’ is the latest one of the ‘Timestamps’ group by ‘NIP’
Advertisement
Answer
If you are using SQL server you can make sure of Cast and group by.
with cte as (
select '15017' as NIP, '2020-03-24 08:00:02.550' as TimeStamps union all
select '15017' as NIP, '2020-03-24 08:01:00.117' as TimeStamps union all
select '15017' as NIP, '2020-03-24 08:05:30.440' as TimeStamps union all
select '15017' as NIP, '2020-03-24 08:05:37.397' as TimeStamps union all
select '15017' as NIP, '2020-03-24 08:06:25.160' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 08:08:01.537' as TimeStamps union all
select '15017' as NIP, '2020-03-24 10:41:15.500' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 11:40:37.327' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 11:41:43.750' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 13:25:01.000' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 14:11:26.000' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 14:11:39.000' as TimeStamps union all
select 'H8137' as NIP, '2020-03-24 14:22:50.000' as TimeStamps union all
select '15017' as NIP, '2020-03-24 18:26:10.000' as TimeStamps union all
select '15017' as NIP, '2020-03-24 18:26:16.000' as TimeStamps union all
select '15017' as NIP, '2020-03-24 18:26:46.000' as TimeStamps union all
select '15017' as NIP, '2020-03-24 18:26:51.000' as TimeStamps union all
select '15017' as NIP, '2020-03-24 18:27:06.000' as TimeStamps union all
select '15017' as NIP, '2020-03-24 18:27:12.000' as TimeStamps )
select cast(TimeStamps as date) Date , NIP, min(cast (TimeStamps as time)) Clock_in, max(cast (TimeStamps as time)) Clock_out from cte
group by cast(TimeStamps as date) , NIP;
output: