Как создать первый вход и последний выход из журнала посещаемости - PullRequest
0 голосов
/ 05 июля 2019

У меня есть существующий журнал посещаемости, и я хочу получить первый IN и последний OUT каждого сотрудника на основе даты, что может быть запросом?

уже пробовал использовать MAX () и MIN ()функции

Пример данных ниже

username              date    time
----------------------------------------
user1                07-01-2019 7:20:00
user1                07-01-2019 7:25:00
user2                07-01-2019 7:40:00
user2                07-01-2019 7:42:00
user3                07-01-2019 7:45:00
user3                07-01-2019 7:47:00
user1                07-01-2019 12:00:00
user1                07-01-2019 12:15:00
user2                07-01-2019 12:15:00
user2                07-01-2019 12:40:00
user3                07-01-2019 12:20:00
user3                07-01-2019 12:25:00
user1                07-03-2019 7:20:00
user1                07-03-2019 7:25:00
user2                07-03-2019 7:40:00
user2                07-03-2019 7:42:00
user3                07-03-2019 7:45:00
user3                07-03-2019 7:47:00
user1                07-03-2019 12:00:00
user1                07-03-2019 12:15:00
user2                07-03-2019 12:15:00
user2                07-03-2019 12:40:00
user3                07-03-2019 12:20:00
user3                07-03-2019 12:25:00

выберите [имя пользователя], concat ([дата], '', [время]) как выход из теста, где [имя пользователя]! = ''order by inout asc выберите [имя пользователя], concat ([date],' ', [time]) как inout из порядка тестирования inout desc

Я ожидаю, что результат будет ниже

username                    date    timeIn          timeOut
--------------------------------------------------------------
user1                      07-01-2019 7:20:00       12:15:00
user2                      07-01-2019 7:40:00       12:40:00
user3                      07-01-2019 7:45:00       12:25:00
user1                      07-03-2019 7:20:00       12:00:00
user2                      07-03-2019 7:40:00       12:40:00
user3                      07-03-2019 7:45:00       12:25:00

1 Ответ

3 голосов
/ 05 июля 2019

Попробуйте (не проверено)

SELECT
    username,
    date,
    MIN(time) AS timeIn,
    MAX(time) AS timeOut
FROM
   test
GROUP BY
    username,
    date
ORDER BY
    username,
    date

Предполагается, что вы хотите время и время на одну и ту же дату.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...