You are on page 1of 2

select id_angajat,nume,id_manager,level niv_ierarhic

from angajati
connect by prior id_angajat=id_manager
start with id_angajat=100;

select id_angajat,nume,id_manager,level niv_ierarhic,connect_by_root(id_angajat)


from angajati
connect by prior id_angajat=id_manager;
--start with id_angajat=100;

select id_angajat,nume,id_manager,sys_connect_by_path(nume,'/')
cale_ierarhica,level,level-1 nr_superiori
from angajati
connect by prior id_angajat=id_manager
start with id_manager is null;

select id_angajat,nume,id_manager,sys_connect_by_path(nume,'/')
cale_ierarhica,level,level-1 nr_superiori
from angajati
connect by id_angajat=prior id_manager
start with id_manager is null;

select lpad(' ',level) || nume


from angajati
connect by prior id_angajat=id_manager
start with id_angajat=100;

select id_angajat,nume,a.id_manager,a.id_departament,denumire_departament,level
from angajati a,departamente d
where a.id_departament=d.id_departament
connect by prior id_angajat=a.id_manager
start with id_angajat=100;

select id_angajat,nume,id_manager,id_departament,level
from angajati
where id_departament <> (select id_departament from angajati where nume='Faviet')
connect by prior id_angajat= id_manager --fara prior nu se deplaseaza
start with id_angajat=101; --toti subalternii din 101 care nu lucreaza cu faviet

select id_angajat,nume,id_manager,level,connect_by_isleaf --daca au sau nu


subalterni
from angajati
where connect_by_isleaf=1 and level=3 --subalternii de pe nivelul 3
connect by prior id_angajat=id_manager
start with id_angajat=100;

select id_angajat,nume,id_manager,level,connect_by_isleaf --daca au sau nu


subalterni
from angajati
where level=(select max(level) from angajati connect by prior
id_angajat=id_manager) --de pe ultimul nivel ierarhic
connect by prior id_angajat=id_manager
start with id_angajat=100;

update angajati
set id_manager=110
where id_angajat=100;

select id_angajat,nume,id_manager,level
from angajati
connect by nocycle prior id_angajat=id_manager --pt cicluri
start with id_angajat=100;

select id_angajat,nume,id_manager,level,connect_by_iscycle
from angajati
connect by nocycle prior id_angajat=id_manager
start with id_angajat=100;

rollback; --sterge update

select nume,sum(salariul)
from (select connect_by_root(nume) nume,salariul --salariul din subcerere
from angajati
connect by prior id_angajat=id_manager
start with id_departament=90)
group by nume;

select connect_by_root(nume) nume,salariul


from angajati
connect by prior id_angajat=id_manager
start with id_departament=90;

You might also like