Вам необходимо присоединиться к имени execs
общего табличного выражения (CTE) в вашем основном запросе, например:
...
from t1 eah
join t3 eh
on eah.exec_id = eah.exec_id
join t2 th
on th.trd_id = eah.trd_id
join execs
on execs.exec_id = eh.exec_id
join t4 tk
...
Я не уверен, что вы на самом деле хотите CTE здесь, похожевы можете просто выполнить агрегирование в основном запросе, когда вы ссылаетесь на те же таблицы;но может быть что-то мне не хватает, например, дубликаты, введенные последующими объединениями.
Кстати, первое предложение on
выглядит там неправильно, поскольку обе стороны ссылаются на один и тот же столбец в одной и той же таблице;так что, вероятно, это должно быть:
...
from t1 eah
join t3 eh
on eh.exec_id = eah.exec_id
join t2 th
Наличие distinct
иногда является признаком того, что объединения неправильны и есть дубликаты, которые вы хотите исключить, которых на самом деле не должно быть, так что вы можете этого не делатьнеобходимо, чтобы после того, как условие соединения было установлено;и это может позволить простой агрегат также работать, если раньше он давал неправильный результат.(Или может быть еще какая-то другая причина, по которой это не подходит.)
Кроме того, where rownum < 15
даст неопределенный набор строк, поскольку вы не упорядочиваете набор результатов перед применением этого фильтра.