Это будет работать для нескольких идентификаторов.
Если вы просто используете ID, FTIME и STATUS, функции GROUP
будут работать хорошо. Если вы тянете другие столбцы, пожалуйста, дайте мне знать, и я покажу альтернативу, которая немного сложнее.
Чтобы получить самый старый по ID для C-in
:
SELECT ID, STATUS, MIN(FTIME) AS OUT_FTIME
FROM TBL_RECORD
WHERE STATUS = 'C-in'
GROUP BY ID, STATUS;
Для получить новейший идентификатор для C-out
:
SELECT ID, STATUS, MAX(FTIME) AS OUT_FTIME
FROM TBL_RECORD
WHERE STATUS = 'C-out'
GROUP BY ID, STATUS;
Чтобы собрать все вместе:
SELECT ID, STATUS, MIN(FTIME) AS OUT_FTIME
FROM TBL_RECORD
WHERE STATUS = 'C-in'
GROUP BY ID, STATUS
UNION SELECT ID, STATUS, MAX(FTIME) AS OUT_FTIME
FROM TBL_RECORD
WHERE STATUS = 'C-out'
GROUP BY ID, STATUS
ORDER BY ID, OUT_FTIME;