SQL команда два слияния

0

Я новичок в 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
  • 0
    Это MSSQL или mySql? какое программное обеспечение вы используете для управления базами данных?
  • 0
    mysql .. Мне нужен запрос mysql, чтобы добиться этого.
Показать ещё 4 комментария
Теги:

1 ответ

2

Здесь должен работать простой запрос 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')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню