Я новичок в SQL.
У меня есть таблица, как показано ниже:
EMP_NUMBER ATTDATE ATTTIME
00001 01-05-2018 9:00
00001 01-05-2018 18:00
00001 02-05-2018 8:00
00001 02-05-2018 20:00
Теперь я хочу, чтобы SQL-запрос использовал таблицу выше, чтобы создать таблицу в следующем формате:
EMP_NUMBER ATTDATE ATTINTIME ATTOUTTIME
00001 01-05-2018 9:00 18:00
00001 02-05-2018 8:00 20:00
Здесь должен работать простой запрос GROUP BY
:
SELECT
EMP_NUMBER,
ATTDATE,
MIN(ATTTIME) AS ATTINTIME,
MAX(ATTTIME) AS ATTOUTTIME
FROM yourTable
GROUP BY
EMP_NUMBER,
ATTDATE;
Примечание: Этот ответ подразумевает, что ваша информация о дате и времени в фактических datetime
и time
datetime
и time
столбцов. Если нет, то вы работаете напрямую с текстом, и он не будет сортироваться должным образом. В качестве временного средства вы можете использовать STR_TO_DATE
. Например, вы можете конвертировать столбец ATTTIME
в нужное время, используя это:
STR_TO_DATE(ATTTIME, '%H:%i')