oracle 我如何计算上一次航班和下一次航班之间的差额?

qnyhuwrf  于 2022-11-03  发布在  Oracle
关注(0)|答案(2)|浏览(142)

我有两个表,一个是实际航班,另一个是计划航班。

实际航班:

| 飞机|型号|航班日期|
| - -|- -|- -|
| 烧烤|A320直升机|2022年10月26日|
| 自动频率控制|A321运输机|2022年10月27日|
| 肯尼迪机场|A321运输机|2022年10月25日|
| 自动频率控制|A321运输机|2022年10月22日|

预定航班

| 飞机|型号|排程日期|
| - -|- -|- -|
| 烧烤|A320直升机|2022年10月28日|
| 自动频率控制|A321运输机|2022年10月27日|
| 肯尼迪机场|A321运输机|2022年10月29日|
| 自动频率控制|A321运输机|2022年10月30日|
现在,我需要计算每架飞机上一次飞行和下一次预定飞行之间的天数。结果表应如下所示:
| 飞机|差异_天数|
| - -|- -|
| 烧烤|2个|
| 自动频率控制|第0页|
| 肯尼迪机场|四个|
我已经尝试了这个查询,但是没有得到预期的结果,甚至在生成结果时冻结:

SELECT s.AC, 
       MIN(s.SCHEDULE_DATE) - MAX(f.FLIGHT_DATE)
FROM SCHEDULE_FLIGHT s
INNER JOIN FLIGHT_DATE f ON f.AC = s.AC
HAVING MIN(s.SCHEDULE_DATE) >= MAX(f.FLIGHT_DATE)
GROUP BY s.AC;
0wi1tuuw

0wi1tuuw1#

SELECT s.AC, 
       MIN(s.SCHEDULE_DATE) - MAX(f.FLIGHT_DATE)
FROM SCHEDULE_FLIGHT s
INNER JOIN FLIGHT_DATE f 
   ON f.AC = s.AC 
  AND s.SCHEDULE_DATE >= f.FLIGHT_DATE
GROUP BY s.AC;
rjee0c15

rjee0c152#

你可以用这个。

SELECT S.aircraft, MIN(S.schedule_date - A.flight_date) DATE_DIFF
FROM actual_flights A  INNER JOIN scheduled_flights S 
ON S.aircraft = A.aircraft 
GROUP BY S.aircraft
ORDER BY S.aircraft;

相关问题