Вы можете попробовать использовать UNION для максимального IN и минимального OUT
select date
, max(time)
, Terminal_ID
, SL
, Name
, Employee_ID
from my_table
where Terminal_ID like ('%IN')
GROUP BY date, Terminal_ID, SL, Name, Employee_ID
UNION
select date
, min(time)
, Terminal_ID
, SL
, Name
, Employee_ID
from my_table
where Terminal_ID like ('%OUT')
GROUP BY date, Terminal_ID, SL, Name, Employee_ID
order by date, Employee_ID,Terminal_ID