SQL Hierarchie Díl 4 – Úroveň hierarchie, cesta (Path) + skript

V předešlých dílech tohoto miniseriálu o hierarchiích jsme zapomněli na jednu věc, která se může hodit a tou je způsob jak zmapovat v hierarchii hloubku jednotlivých členů neboli úroveň hierarchie. Stejně tak může být užitečné umět zobrazit Path – cestu jednotlivých členů hierarchie. Vycházet budu opět z prvního dílu a tabulky se zaměstnanci, kterou jsem si v rámci tohoto článku připravil.

Určení úrovně hierarchie a cesty (Path)

 

WITH nadrizeny AS
(
--vyber nadzizeneho
SELECT id_zamestnanec, id_nadrizeny, pozice, jmenoprijmeni,plat, 0 AS Hierarchy_Level,
CAST(jmenoprijmeni AS VARCHAR(1024)) AS Path_jmenoprijmeni,
CAST(id_zamestnanec AS VARCHAR(1024)) AS Path_id_zamestnanec
FROM Temp.dbo.zamestnanci
WHERE id_zamestnanec=15
UNION ALL
--rekurzivní dotaz na jeho podřízené
SELECT zam.id_zamestnanec, zam.id_nadrizeny, zam.pozice, zam.jmenoprijmeni, zam.plat, Hierarchy_Level+1,
CAST(nad.Path_jmenoprijmeni + ' | ' + CAST(zam.jmenoprijmeni AS VARCHAR(1024)) AS VARCHAR(1024)) AS Path_jmenoprijmeni,
CAST(nad.Path_id_zamestnanec + ' | ' + CAST(zam.id_zamestnanec AS VARCHAR(1024)) AS VARCHAR(1024)) AS Path_id_zamestnanec
FROM Temp.dbo.zamestnanci zam INNER JOIN nadrizeny nad
ON zam.id_nadrizeny = nad.id_zamestnanec
)
SELECT
id_zamestnanec,
jmenoprijmeni,
pozice,
plat,
Hierarchy_Level,
Path_jmenoprijmeni,
Path_id_zamestnanec
FROM nadrizeny;

Výsledek je na obrázku níže

  • Hierarchy_Level – zobrazení úrovně člena hierarchie. Ředitel má 0, manažer 1 a zaměstnanec 2. Pokud by měla hierarchie více členů, tak by bylo více levelů
  • Path_jmenoprijmeni – zobrazení cesty od nejvyššího člena k nejnižšímu. Zobrazujeme jméno a příjmení oddělení znakem “|”
  • Path_id_zamestnanec – podobně jao v předchozím případě je to cesta, ale zobrazujeme ID. To nám může lépe vyhovovat kvůli rychlosti dotazu a také s tímto formátem rychleji pracují některé reportovací nástroje – např. Power BI

Úroveň hierarchie - ukázka příkladu

_______________________________________________________________________________________________
Intelligent technologies - podniková řešení a školení
SQL Hierarchie Díl 4 – Úroveň hierarchie, cesta (Path) + skript
Hodnocení

Napsat komentář

Vaše emailová adresa nebude zveřejněna.

This site uses Akismet to reduce spam. Learn how your comment data is processed.