Я хотел бы создать запрос с использованием оператора in на основе результата запроса count (), имеющего count () = 1. Пожалуйста, см. Запрос ниже.
select count(*), pr.oid
join jrtepiperun pr on pr.oid = it.oid
join xownsparts x on x.oidorigin = pr.oid
having count(*) = 1
group by pr.oid;
Этот запрос успешно возвращает в общей сложности 1589 строк, где count (*) = 1 для каждой строки и pr.oid варьируется. Теперь я хочу создать еще один запрос на основе результата pr.oid, как показано ниже.
select * from jpipelinesystem pl
join xsystemhierarchy x on x.oidorigin = pl.oid
join jrtepiperun pr on pr.oid = x.oiddestination
where pr.oid
in
(
select count(*), pr.oid from
rtrprdb.jrtepiperun pr
join rtrprdb.xownsparts x on x.oidorigin = pr.oid
having count(*) = 1
group by pr.oid
);
Однако это возвращает ошибку о том, что слишком много значений. ORA-00913: слишком много значений 00913. 00000 - «слишком много значений» * Причина:
* Действие: Ошибка в строке: 20 Столбец: 1
Как использовать результаты pr.oid из первый запрос для второго запроса? Обратите внимание, что мне нужно иметь два столбца, так как я хочу условие, где count (*) = 1.