У меня есть таблица, подобная этой
id title display_order
1 t1 3
2 t2 1
3 t3 5
4 t4 4
5 t5 2
6 t6 0
7 t7 7
8 t8 6
9 t9 0
10 t10 0
Что мне нужно, так это иметь результаты, подобные этой
id title display_order
2 t2 1
5 t5 2
1 t1 3
4 t4 4
3 t3 5
8 t8 6
7 t7 7
...order of the rest is not important but should be in the result
6 t6 0
9 t9 0
10 t10 0
Я могу получить этот результат с двумя запросами SQL, а затем объединить их.
Есть ли способ сделать это с одним SQL?
Спасибо
-121--1318082-Я пытаюсь объединить два запроса, чтобы определить, какой самолет будет находиться в определенной точке (точка ABCD) непосредственно перед определенным временем (2011-09-19 04:00: 00.000). Пока что я генерирую последний раз, когда самолет прибыл в этот пункт, и последний раз, когда самолет вылетал из пункта. Моя нынешняя идея заключается в том, что если последний раз, когда он прибыл больше, то последний раз, когда он покинул самолет, все еще находится в точке ABCD непосредственно перед указанным временем.
Первый запрос находит последний раз, когда самолет прибыл в определенную точку:
select aircraft_id, MAX(arrival_datetime) as last_arrival
from flight_schedule
where arrival_datetime < '2011-09-19 04:00:00.000' and arrival_point='ABCD'
group by aircraft_id
, а второй запрос находит последний раз, когда самолет вышел из этой точки:
select aircraft_id, MAX(departure_datetime) as last_departure
from flight_schedule
where departure_datetime < '2011-09-19 04:00:00.000' and departure_point='ABCD'
group by aircraft_id
Оба этих запроса генерируют соответствующие ответы. Я понимаю, что для сравнения last_departure с last_arrival полями мне нужно как-то присоединиться к таблицам.
Я не SQL whiz, и в прошлом все объединения таблиц, которые я делал, были между двумя совершенно разными таблицами и не участвовали в каких-либо агрегатных функций, поэтому мои обычные подзапросы и структура не работали.