ORA-00904: неверный идентификатор после предложения группировки

Я пытаюсь запустить эту команду выбора:

select
    r.id,
    r.trip_reason,
    r.status, 
    to_char(trunc(r.trip_date),'DD/MM/YYYY') AS trip_date,
    c.country, count(a.request_id)           AS AZ_Travelers,
    t.travel_by, 
    tt.type,
    r.trip_city,
    r.nr_non_az,
    initcap(e.first_name || ' ' || e.last_name) AS requestor,
    r.requestor_id

 from et_request r, et_country c, et_travel_by t,
      et_trip_type tt, hr_dwh.pm_employees e, et_approval a     

where nvl(r.archived,0)<>1
  and trunc(r.trip_date) >= trunc(sysdate)
  and r.requestor_id = e.empl_id
  and r.id = a.request_id
  and r.trip_country_code = c.id
  and r.travel_by_id = t.id
  and r.trip_type_id = tt.id

group by r.id, r.trip_reason, r.status, trip_date, c.country, AZ_Travelers,
         t.travel_by, tt.type, r.trip_city, r.nr_non_az, requestor, r.requestor_id
order by r.trip_date;

Однако я получаю следующую ошибку:

ORA-00904: "REQUESTOR": invalid identifier

Я обратил внимание на использование каждой таблицы полей в моем group by пункт, но я получаю эту ошибку. Есть ли какие-либо сведения об этом?

1 ответ

Решение

База данных не имеет столбец с именем requestor - в этот момент это всего лишь ярлык, который вы сказали ему дать чему-либо в наборе результатов - который он еще не сгенерировал и поэтому не знает, как обращаться с ним, когда встречает это имя в запросе.

Вы можете сгруппировать по компонентам этого вычисляемого столбца, например заменить requestor в вашем GROUP BY заявление с e.first_name, e.last_name,

Другие вопросы по тегам