UNION ALL, ORDER BY в конце, неверный идентификатор, возрастание, сообщение об ошибке - PullRequest
0 голосов
/ 31 марта 2020

Я получаю другое сообщение об ошибке. Пожалуйста, смотрите ниже сообщение об ошибке. Здесь я делаю UNION ALL и могу подтвердить, что этот запрос работает без ORDER BY в конце. Тем не менее, мне нужно заказать по этому столбцу в конце. Итак, я не уверен, как решить эту проблему. Я даже пытался удалить второй запрос а. к а1. поэтому они имеют разные псевдонимы. Теперь я знаю, что нужно помещать ORDER BY в конец кода при выполнении UNION ALL, но не ожидал получить неверный идентификатор.

Сообщение об ошибке

ORA-00904: "A1"."ID1": invalid identifier
Error at Line: 1 Column: 678

Код

select a.ID2, a.ID1, cnt, a.*, b.*
from (
select t.*, 
count(distinct ID2) over(partition by ID1) cnt 
from TABLE1 t) a
, TABLE2 b 
where a.cnt > 1
and a.ID2=b.ID2 (+)
and (b.STATUS in ('A','L','P','S') 
or b.DATE1 >= TO_DATE('2018-01-01','YYYY-MM-DD'))
union all
select a1.ID2, a1.ID1, cnt, a1.*, j.*
from (
select t.*, 
count(distinct ID2) over(partition by ID1) cnt 
from TABLE1 t) a1
inner join TABLE2 j
on a1.ID2=j.ID2
inner join SCHEMA1.TABLE3 d
on j.ALTER_ID2=d.ALTER_ID2
where a1.cnt > 1
order by a.ID1 asc, a1.ID1 asc

1 Ответ

1 голос
/ 31 марта 2020

Использование ORDER BY 2, 1 asc -- order by column number

ORDER BY выполняется после выполнения SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...