#mysql
#mysql
Вопрос:
Могу ли я получить некоторые данные из каждого столбца, а затем сохранить их в одном столбце результатов, используя запросы mysql?
Table
Truck Number, Depart time, Arrive time
0001,'2016-10-05 07:15:00','2016-10-05 10:10:00'
0002,'2016-10-05 08:15:00','2016-10-05 09:30:00'
0003,'2016-10-04 19:15:00','2016-10-05 08:45:00'
Мне нужны только грузовики, которые отправляются или прибывают с ‘2016-10-05 08:00:00’ до ‘2016-10-05 08:50:00’
Я хочу, чтобы результат был
Truck, Time
0002 '2016-10-05 08:15:00'
0003 '2016-10-05 08:45:00'
И, если возможно, укажите столбец, из которого пришло время.
Комментарии:
1. вы пробовали использовать предложение where с
between
?2. Это не будет объединять время на этапе выбора, поскольку мне нужно иметь только номер грузовика и время. Я хочу только время отправления или прибытия, а не оба. Получение времени в трех столбцах просто, и я могу использовать между ними.
3. Итак, что вы пробовали?
4. Вывод столбца времени четко не определен. Нам остается представить, соответствуют ли оба раза в строке
5. ОБЪЕДИНЕНИЕ должно привести к желаемому результату
Ответ №1:
SELECT T.TRUCKNUMBER,
CASE WHEN DEPART BETWEEN '2016-10-05 08:00:00' AND '2016-10-05 08:50:00' THEN DEPART
ELSE ARRIVE
END AS TIME ,
CASE WHEN DEPART BETWEEN '2016-10-05 08:00:00' AND '2016-10-05 08:50:00' THEN 'DEPART'
ELSE 'ARRIVE'
END AS SourceColumn
FROM T WHERE DEPART BETWEEN '2016-10-05 08:00:00' AND '2016-10-05 08:50:00' OR
ARRIVE BETWEEN '2016-10-05 08:00:00' AND '2016-10-05 08:50:00'
Результат
------------- --------------------- --------------
| TRUCKNUMBER | TIME | SourceColumn |
------------- --------------------- --------------
| 2 | 2016-10-05 08:15:00 | DEPART |
| 3 | 2016-10-05 08:45:00 | ARRIVE |
------------- --------------------- --------------
Ответ №2:
Будет ли ОБЪЕДИНЕНИЕ работать для вас?, вот так:
select truck, departtime as time , 'Depart' as direction
where departtime between '2016-10-05 08:00:00' and '2016-10-05 08:50:00'
UNION
select truck, arrivetime as time , 'Arrive' as direction
where arrivetime between '2016-10-05 08:00:00' and '2016-10-05 08:50:00'
ORDER BY TRUCK, TIME