Pracuję przy projekcie, którego ważnym elementem jest obsługa tzw. profili inwestycyjnych np.:
Fundusz A inwestuje 10% w Fundusz B i 30% w Fundusz C, a Fundusz C 100% w Fundusz D, który...
Pisząc zapytanie wyciągające takie hierarchiczne chcę szybko podejrzeć wynik w formie graficznej. W końcu jeden obraz wart więcej niż tysiąc rekordów zwróconych przez zapytanie. Kolega (dziękuję Łukasz) polecił mi stronkę
GraphViz Workspace, która na życzenie generuje grafy/drzewa na podstawie opisu zgodnego z formatem obsługiwanym oczywiście przez
Graphviz.
Ok, ale jak to wykorzystać aby łatwo i szybko wizualizować wynik zapytania? Oto prosty przykład. Zacznijmy od utworzenia tabeli z danymi hierarchicznymi.
CREATE TABLE dbo.Hierarchy
(
Parent INT,
Child INT
);
INSERT INTO dbo.Hierarchy(Parent, Child)
VALUES (1,2), (1,3), (1,4), (2,5), (2,6), (4,5), (5,7), (7,8), (6,8);
Następnie wyciągniemy z niej dane, bazując na tym, że w formacie
GraphViz węzeł rodzic i węzeł dziecko połączone są strzalką
->:
SELECT CAST(Parent AS VARCHAR) + '->' + CAST(Child AS VARCHAR)
FROM dbo.Hierarchy
Wynik zapytanie wystarczy skopiować i umieścić na stronie
GraphViz Workspace:
digraph g{TUTAJ}
Aby otrzymać taki wynik:
Prosto, łatwo i przyjemnie.