введите описание изображения здесь Таблица 1 - Путешественники

Столбцы - Название, Ближайший аэропорт, Пункт назначения.

Таблица2 - Рейсы

Столбцы - Код, DepartureAirport, DepTime, ArrivalAirport, ArrTime.

Проблема - найти все возможные способы перелета из ближайшего аэропорта в пункт назначения.

Мне нужно найти все возможные рейсы, включая ПРЯМЫЕ и СОЕДИНЯЮЩИЕ рейсы для Путешественников. Я могу найти прямые рейсы, но не могу найти стыковочные рейсы. (Максимум 1 остановка)

Если кто-то может помочь мне написать запрос для MS Access DB, это будет действительно полезно.

0
Suresh 26 Окт 2018 в 07:51

2 ответа

Лучший ответ

Вы можете попробовать следующее:

Хотя демо находится на sqlserver, но, поскольку это стандартный sql, я думаю, он будет работать и в MS Access

ДЕМО

  select 
       X.name,
       x.nearestairport,
       case when X.destinationaiport=X.arrivaleairport then ''
       else X.arrivaleairport end as stop1,
      X.destinationaiport 
   from
    (
       select name, a.nearestairport, a.destinationaiport,b.arrivaleairport
       from table1 a left join table2 b
       on a.nearestairport=b.departureairport
    )X
    left join table2 c 
    on X.destinationaiport=c.arrivaleairport and X.nearestairport=c.departureairport

Выход:

name    nearestairport  stop1   destinationaiport
Jason   JFK                     CLT
Jason   JFK              RDU    CLT
Robert  LAG                     RDU
Wel     CAK              JFK    CLT
Adam    RDU              CLT    JFK
Adam    RDU                     JFK
1
Fahmi 26 Окт 2018 в 06:16

Вы можете использовать следующий выбор, чтобы получить расписание прямых / косвенных рейсов.

 SELECT t.Name,t.NearestAirport,cn.DepartureAirport AS Stop,t.DestinationAirport
 FROM Flights f 
 JOIN Travelers t ON t.NearestAirport=f.DepartureAirport
 LEFT JOIN Flights cn ON cn.DepartureAirport=f.ArrivalAirport AND cn.ArrivalAirport = t.DestinationAirport 

Нажмите https://dbfiddle.uk/?rdbms=sql47iddle.uk/?rdbms=sqlserver_2019, чтобы получить его. В демо я рассчитал продолжительность полета

1
Sanal Sunny 26 Окт 2018 в 06:35