Tento článek popisuje funkce, které se hodí při práci s hierarchickými tabulkami. Tedy s tabulkami, kde v jednom sloupci je položka a ve druhém položka jí nadřízená. Protože úrovní může být více, může být jedna položka jak v pozici nadřízeného, tak podřízeného.

Typickým příkladem je organizační struktura firmy.

Takto je zapsaná v tabulce, kde má každý zaměstnanec vypsaného svého přímého nadřízeného:

Pro představu graficky si ji můžeme představit takto:

Které funkce nám tedy pomohou při procházení hierarchie?

PATH

Funkce PATH vypíše všechny uzly / úrovně, které jsou nad položkou. V našem případě tedy nadřízeného, jeho nadřízeného, jeho nadřízeného… Položky budou oddělené svislou čarou.

Vstupem funkce je jednoduše sloupec s položkou (musí být unikátní) a sloupec s nadřízenými těchto položek.

PATHLENGTH

PATHLENGTH vypíše, kolik úrovní je nad položkou, včetně jí samé. V našem případě tedy kolik lidí je v hierarchii nad zaměstnancem, včetně jeho samého. Nejvýše postavený člověk ve firmě, který už nemá nad sebou nikoho, má číslo jedna, jeho podřízený dva atd.

Vstupem této funkce je výsledek předchozí funkce PATH. PATHLENGTH tedy víceméně nelze použít bez PATH.

PATHITEM

Funkce PATHITEM najde položku, která je v určité úrovni nad položkou. Počítá se zprava (shora).  

Např. s parametrem 1 ukáže ve firmě nejvýše postaveného člověka všem stejně, ale s parametrem 2 ukáže číslo dvě ve větvi, do které patří ten který zaměstnanec.

Vstupem funkce je výstup funkce PATH a číslo podle toho, kterou úroveň shora chceme zobrazit.

PATHITEMREVERSE

PATHITEMREVERSE funguje obdobně jako předchozí, ale počítá se zdola nahoru. Tedy s parametrem 1 ukáže bezprostředně nadřízeného, s parametrem 2 pak nadřízeného nadřízeného atd.

Vstupem je zase výstup funkce PATH a číslo.

PATHCONTAINS

PATHCONTAINS je funkce, která ověří, jestli se někde nad položkou v hierarchii jiná položka. Na příkladu podniku tedy můžeme ověřovat, jestli má zaměstnanec v jakékoliv úrovni nad sebou konkrétního jiného zaměstnance.

Argumentem je stejně jako u předchozích funkcí cesta – typicky zjištěná přes funkci PATH, a název hledané položky.

Soubor si můžete stáhnout tady:

hierarchy