Кажется странным .. но это может быть то, что вы после ... Мы получаем минимальную/максимальную ножку для каждого полета в подзапросе псевдонима «Z» Мы используем это, чтобы присоединиться обратно в два раза flight_leg , один раз для вылета и один раз для прибытий и снова дважды возвращайтесь в аэропорт один раз для вылета один раз для прибытия.
SELECT Z.Flight_Number, DA.Name DeptName, AA.Name ArrivName
FROM (SELECT MIN(Leg_Number) MLN, MAX(Leg_Number) MxLN, Flight_Number
FROM Flight_Leg Group by Flight_Number) Z
INNER JOIN Flight_Leg D
on D.Flight_Number = Z.Flight_Number
and D.Leg_Number = Z.MLN
INNER JOIN Flight_Leg A
on A.Flight_Number = Z.Flight_Number
and A.Leg_Number = Z.MxLN
INNER JOIN AirPort DA
on DA.AirPort_Code = D.Departure_AirPort_Code
INNER JOIN AirPort AA
on AA.AirPort_Code = A.Arrival_AirPort_Code
http://sqlfiddle.com/#!2/263a2/56
Вы используете один и тот же столбец «Leg_number» от Flight_leg присоединиться, чтобы на макс и мин номерами ноги из ЛУ, что не будет работать? – SoulTrain
Мне нужно найти Departure_airport_code (MIN номер ноги) и Arrival_airport_code (MAX номер ноги) и после этого присоединиться к таблице AIRPORT. – user2254399
Для этого вам сначала понадобятся коды воздушного порта для (минимальных и максимальных номеров ног) для конкретного номера рейса, а затем получить информацию о Аэропорту на основе этих кодов. Верный? – SoulTrain