Я могу найти первый и последний выход с минимальным и максимальным значением в тот же день, но при разнице выходных дней никаких изменений
Таблица Атт
id tgl
| 111 | 2019-02-24 07:30:00 |
| 111 | 2019-02-24 16:31:00 |
| 222 | 2019-02-24 17:59:00 |
| 222 | 2019-02-25 07:31:00 |
| 333 | 2019-02-24 07:30:00 |
| 333 | 2019-02-24 18:00:00 |
мой запрос
select id, min(date(tgl)) as date_in, max(date(tgl)) as date_out,
min(time(tgl)) as jam_in, max(time(tgl)) as jam_out
from Att
group by date(tgl),id
результат моего запроса
id tgl_in tgl_out jam_in jam_out
| 111 | 2019-02-24 | 07:30:00 | 2019-02-24 | 16:31:00 |
| 222 | 2019-02-24 | 17:59:00 | 2019-02-24 | 17:59:00 |
| 222 | 2019-02-25 | 07:31:00 | 2019-02-25 | 07:31:00 |
| 333 | 2019-02-24 | 07:30:00 | 2019-02-24 | 18:00:00 |
Желаемый результат
id tgl_in tgl_out jam_in jam_out
| 111| 2019-02-24 | 2019-02-24 |07:30:00 | 16:31:00 |
| 222| 2019-02-24 | 2019-02-25 |17:59:00 | 07:31:00 |
| 333| 2019-02-24 | 2019-02-24 |07:30:00 | 18:00:00 |
Я меняю свой запрос на группу по идентификатору
select id, min(date(tgl)) as date_in, max(date(tgl)) as date_out, min(time(tgl)) as jam_in, max(time(tgl)) as jam_out from Att group by id
но результат time jam_in и jam_out id 222 неверен
id date_in date_out jam_in jam_out
111 2019-02-24 2019-02-24 07:30:00 16:31:00
222 2019-02-24 2019-02-25 07:31:00 17:59:00
333 2019-02-24 2019-02-24 07:30:00 18:00:00
@RiggsFolly Нет. Это не так.
Спасибо @Strawberry, это затронуто, но только на 2 свидания, а если больше 2 свиданий?
Если у вас есть новый вопрос, задайте новый вопрос с соответствующим набором данных и желаемым результатом.






Эм,
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table
(id INT NOT NULL
,tgl DATETIME
,PRIMARY KEY(id,tgl)
);
INSERT INTO my_table VALUES
(111,'2019-02-24 07:30:00'),
(111,'2019-02-24 16:31:00'),
(222,'2019-02-24 17:59:00'),
(222,'2019-02-25 07:31:00'),
(333,'2019-02-24 07:30:00'),
(333,'2019-02-24 18:00:00');
SELECT id, MIN(tgl) x, MAX(tgl) y FROM my_table GROUP BY id;
+-----+---------------------+---------------------+
| id | x | y |
+-----+---------------------+---------------------+
| 111 | 2019-02-24 07:30:00 | 2019-02-24 16:31:00 |
| 222 | 2019-02-24 17:59:00 | 2019-02-25 07:31:00 |
| 333 | 2019-02-24 07:30:00 | 2019-02-24 18:00:00 |
+-----+---------------------+---------------------+
Остальная часть этой проблемы представляет собой упражнение в форматировании, которое, хотя и прекрасно решается в SQL, возможно, лучше всего решается в коде приложения.
Изменить
group by date(tgl),idнаgroup by id