ORA-00904 Неверный идентификатор на оракуле JOIN - PullRequest
0 голосов
/ 22 мая 2018

Я получил ошибку ORA-00904: "S". "FLIGHTLEGREF": неверный идентификатор для этого

JOIN STAT_1 S ON D.FLIGHTLEGREF = S.FLIGHTLEGREF

Вот мой запрос

WITH STAT_1 AS (SELECT DEPAIRPORT AS STATION
              FROM DBODSXML4OPS.XML4OPS
              WHERE ACTUAL_BLOCKOFF_LC IS NOT NULL AND SERVICETYPE IN ('J','G') AND STATUS IN ('Scheduled') AND TO_CHAR(SCHEDULED_DEPDT_LC, 'yyyy-mm-dd') BETWEEN '2018-04-14' AND '2018-05-14'
              ORDER BY STATION ASC) 
SELECT S.STAT_1 AS STATION, COALESCE((SELECT to_number(to_char(trunc(sysdate) + avg(cast(ACTUAL_BLOCKOFF_LC as date) - cast(SCHEDULED_DEPDT_LC as date)), 'sssss'))/60
                                     FROM DBODSXML4OPS.XML4OPS
                                     WHERE (ACTUAL_BLOCKOFF_LC - SCHEDULED_DEPDT_LC)*24*60 > '+000000015 00:00:00.000000000'), 0) as DEPAVERAGE
FROM DBODSXML4OPS.XML4OPS D
     JOIN STAT_1 S ON D.FLIGHTLEGREF = S.FLIGHTLEGREF
WHERE ACTUAL_BLOCKOFF_LC IS NOT NULL AND SERVICETYPE IN ('J','G') AND --(ACTUAL_BLOCKOFF_LC - SCHEDULED_DEPDT_LC)*24*60 > '+000000015 00:00:00.000000000' AND 
      STATUS IN ('Scheduled') AND TO_CHAR(SCHEDULED_DEPDT_LC, 'yyyy-mm-dd') BETWEEN '2018-04-14' AND '2018-05-14'
GROUP BY S.STAT_1
ORDER BY STATION ASC;

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 22 мая 2018

Вы создали STAT_1 таблицу, которая содержит только один столбец - STATION, вы можете выполнить ее запрос и посмотреть.

Поэтому вам нужно добавить в свой запрос столбец вашего условия:

 ,FLIGHTLEGREF

И замените S.STAT_1 на STAT_1.STATION, который является доступным столбцом в STAT_1.

WITH STAT_1 AS (SELECT DEPAIRPORT AS STATION, FLIGHTLEGREF
              FROM DBODSXML4OPS.XML4OPS
              WHERE ACTUAL_BLOCKOFF_LC IS NOT NULL AND SERVICETYPE IN ('J','G') AND STATUS IN ('Scheduled') AND TO_CHAR(SCHEDULED_DEPDT_LC, 'yyyy-mm-dd') BETWEEN '2018-04-14' AND '2018-05-14'
              ORDER BY STATION ASC) 
SELECT STAT_1.STATION, COALESCE((SELECT to_number(to_char(trunc(sysdate) + avg(cast(ACTUAL_BLOCKOFF_LC as date) - cast(SCHEDULED_DEPDT_LC as date)), 'sssss'))/60
                                     FROM DBODSXML4OPS.XML4OPS
                                     WHERE (ACTUAL_BLOCKOFF_LC - SCHEDULED_DEPDT_LC)*24*60 > '+000000015 00:00:00.000000000'), 0) as DEPAVERAGE
FROM DBODSXML4OPS.XML4OPS D
     JOIN STAT_1 ON D.FLIGHTLEGREF = STAT_1.FLIGHTLEGREF
WHERE ACTUAL_BLOCKOFF_LC IS NOT NULL AND SERVICETYPE IN ('J','G') AND --(ACTUAL_BLOCKOFF_LC - SCHEDULED_DEPDT_LC)*24*60 > '+000000015 00:00:00.000000000' AND 
      STATUS IN ('Scheduled') AND TO_CHAR(SCHEDULED_DEPDT_LC, 'yyyy-mm-dd') BETWEEN '2018-04-14' AND '2018-05-14'
GROUP BY STAT_1.STATION
ORDER BY STAT_1.STATION ASC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...