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

Poslední aktualizace:

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

SQL Hierarchie Díl 4 – Úroveň hierarchie, cesta (Path) + skript
5 (100%) 2 vote[s]

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Category: SQL tutorial Tags:

About Ing. Jan Zedníček - BI Developer, Finance controller

Jmenuji se Honza Zedníček a nejčastěji se se mnou v civilu můžete potkat v kancelářích Kentico Software v Brně, kde působím jako BI Developer. Částečně pracuji také jako freelancer. Tuto práci dělám pro různé firmy již přes 5 let, ale Kentico je moje srdcovka ♡. Před tím jsem pracoval jako finanční controller třeba v Aero Vodochody a Sberbank nebo jako manažer dluhopisového programu v investiční skupině Unicapital. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti se snažím zapisovat na tento web - abych je nezapomněl (působením rumu ^^) a sloužily i někomu dalšímu. Nebojte se položit dotaz nebo reagovat do komentáře. Přihlašte se do naší nové Excel facebook skupiny Excel CZ/SK diskuse »

Leave a Reply

Your email address will not be published.

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