Объединение двух столбцов в один только для требуемых данных

#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