У меня есть запрос, который в настоящее время я получаю ORA-01427: однострочный подзапрос возвращает более одной ошибки строки.Я понимаю ошибку и ее причину, но не могу найти способ ее исправить.Я также хотел бы сделать это только в одном запросе.Вот что у меня в данный момент есть:
SELECT v1.internal_code,
(SELECT terms_id
FROM terms
WHERE term_start_date =
(SELECT MIN (term_start_date)
FROM terms
WHERE terms_id LIKE '%SU'
AND term_start_date >
(SELECT term_start_date
FROM terms
JOIN
vals
ON terms_id =
internal_code
WHERE internal_code =
v1.internal_code
AND valcode_id =
'TERMS')))
AS mmTerm
FROM terms
JOIN
vals v1
ON terms_id = internal_code
WHERE internal_code LIKE '%SP' AND valcode_id = 'WEB.SEARCH.TERMS'
ORDER BY mmTerm ASC
И соответствующая часть таблицы vals была бы такой:оканчиваются на «SU», где term_start_date больше, чем term_start_date терминов в таблице vals.Итак, желаемый результат:
v1.internal_code mmTerm
---------------- ------
2003SP 2003SU
2004SP 2004SU
2005SP 2005SU
Я знаю, что это сложно понять, поэтому, пожалуйста, задавайте вопросы, если таковые имеются.Также любые предложения с радостью принимаются.Спасибо!
РЕДАКТИРОВАТЬ: Я понял это.Просто пришлось сделать переделку, спасибо за предложения.Я опубликую его, если кто-то заинтересован в просмотре окончательного запроса