(SQL-запрос на Oracle DB)выберите значение из присоединяемой таблицы на основе минимального значения в другом столбце
Я пытаюсь показать номер оборудования ИД записи задания на основе наивысшим приоритетом (наименьший номер) всех задач, связанных с работой. Мне также нужно отобразить все задания для задания, поэтому я не могу просто ограничить запрос задачей с наивысшим приоритетом. Поскольку наивысший приоритет равен 1 (с 2 как второй по величине и т. Д.), Запрос к задаче с приоритетом 1 всегда будет работать. Проблема в том, что иногда задача с приоритетом 1 удаляется, поэтому задача приоритета 2 становится наивысшим приоритетом (вы не можете дублировать приоритеты, а приоритет всегда является целым числом).
Вот пример запроса, который работает, когда тянуть идентификатор оборудования на основе приоритета 1 задачи:
SELECT j.title,
j.jobnum,
a.eqid,
a.prior,
a.desc,
b.eqid peqid
FROM JOB j
LEFT JOIN TASK a ON a.jobnum = j.jobnum
LEFT JOIN TASK b ON b.jobnum = j.jobnum
AND b.prior = 1
WHERE j.jobnum = '123'
ORDER BY a.prior
выше запрос будет производить следующие результаты, если он имеет 3 задачи:
TITLE JOBNUM EQID PRIOR DESC PEQID
newjob 123 HAQ7 1 fix this HAQ7
newjob 123 PDL 2 clean this HAQ7
newjob 123 ACCH 3 move this HAQ7
Однако, если задача с приоритетом 1 удалена из задания, теперь вы должны найти задачу с наименьшим приоритетом, чтобы назначить задание идентификатору оборудования.
Я пытался сделать что-то по существу, вдоль этих линий, но это не работает (выдает сообщение, что группа функций не допускается здесь):
select job.title, job.jobnum, task.eqid, task.prior, task.desc, tp.eqid peqid
from job
left join task on job.jobnum = task.jobnum
left join task tp on job.jobnum = tp.jobnum
and tp.prior = min(tp.prior)
Я проработанный с использованием подзапроса в соединении с группой но никогда не может найти того, что работает для того, что я пытаюсь выполнить. Любая помощь будет принята с благодарностью.
Для какой версии Oracle? Это иерархический запрос, и рекурсивные CTE не поддерживались в Oracle до 11gR2. –
Версия Oracle - 10gR2 – pablo