У меня есть стол, flight_schedule
, который состоит из группы сегментов полета. Ниже у меня есть запрос Terradata SQL, который создает список двух сегментных маршрутов между Чикаго и Денвером. то есть в каждой строке есть два рейса, которые в конечном итоге доставят пассажира из Чикаго в Денвер. Например, первая строка содержит информацию о рейсе на ноге из Чикаго в Омаху, а затем в более позднюю ногу из Омахи в Денвер. Этот запрос работает нормально.Присоединение отобранного стола к крестному соединению Таблица
SELECT A.flt_num, A.dprt_sta_cd, A.arrv_sta_cd, A.sch_dprt_dtml, A.sch_arrv_dtml,
B.flt_num, B.dprt_sta_cd, B.arrv_sta_cd, B.sch_dprt_dtml, B.sch_arrv_dtml
FROM
flight_schedule A
CROSS JOIN
flight_schedule B
WHERE
A.dprt_sta_cd = 'Chicago' AND
B.arrv_sta_cd = 'Denver' AND
A.arrv_sta_cd = B.dprt_sta_cd AND
A.sch_arrv_dtml < B.sch_dprt_dtml
ORDER BY B.sch_arrv_dtml;
У меня есть еще один стол, flight_seat_inventory
, который состоит из свободных мест в разных каютах для каждого номера рейса. В приведенном ниже запросе суммируется общее количество доступных мест для каждого номера рейса. Этот запрос также A-OK.
SELECT flt_num, SUM(seat_cnt) as avail_seats
FROM flight_seat_inventory
GROUP BY flt_num;
Я хочу, чтобы объединить эти два запроса с LEFT JOIN, в два раза, так что каждый полет имеет соответствующее avail_seats
значение. Как я могу это сделать?
Для большей ясности, я думаю, что мой желанный Select
заявление выглядит следующим образом:
SELECT A.flt_num, A.dprt_sta_cd, A.arrv_sta_cd, A.sch_dprt_dtml, A.sch_arrv_dtml, C.avail_seats
B.flt_num, B.dprt_sta_cd, B.arrv_sta_cd, B.sch_dprt_dtml, B.sch_arrv_dtml, D.avail_seats
flight_schedule
огромно, так что я подозреваю, что это более эффективно, чтобы сделать LEFT JOIN
после CROSS JOIN
. Опять же, используя Teradata SQL.
Спасибо!
Много взглядов, без комментариев .... Что-то не понятно? Стена текста пугает? – rvictordelta
Создайте образец таблицы и создайте образец запроса таким образом, что будет легко понять больше о вашем сообщении. Используйте эту ссылку http://sqlfiddle.com/#!6 – user1413