Ошибка недопустимого идентификатора в поле, созданном с помощью инструкции select

#sql #oracle10g #identifier

#sql #oracle10g #идентификатор

Вопрос:

Почему sql ниже не работает?

 select
    a.field1, a.field2, a.field3,
    (select count(*)
        from table2 b
        where b.field1 = a.field1
    ) as field4,
    (select count(*)
        from table3 b
        where b.field1 = a.field1
    ) as field5,
    (select count(*)
        from table4 b
        where b.field1 = a.field1
    ) as field6,
from table1 a
order by field4
  

Oracle сообщает: ORA-00904: «field4»: недопустимый идентификатор

Ответ №1:

попробуйте завершить это

 select * from 
(    
select
    a.field1, a.field2, a.field3,
    (select count(*)
        from table2 b
        where b.field1 = a.field1
    ) as field4,
    (select count(*)
        from table3 b
        where b.field1 = a.field1
    ) as field5,
    (select count(*)
        from table4 b
        where b.field1 = a.field1
    ) as field6,
from table1 a
)
order by field4