четверг, 9 марта 2017 г.

(изучить) Что-то новое в SQL

select id, dispstatus_id, doc_number, doc_date
from document where id in (
select min(id) from (select level, id, dispstatus_id, doc_number, doc_date, parent_id, connect_by_root id as root
from document
where documentclass_id = 244
start with parent_id is null
connect by nocycle prior id = parent_id) t
where t.dispstatus_id in (28,33)
group by t.root
having count(*)>1
)
;

Чтобы понять, что такое рекурсивные запросы, нужно понять, что такое рекурсивные запросы.

Понятия:
- Корень - нет родителя, есть потомки;
- Ветвь - есть родитель, есть потомки;
- Лист - есть родителя, нет потомков.

Комментариев нет:

Архив