Jaki jest najprostszy sposób wykonania rekursywnego samosprzężenia w SQL Server? Mam taki stół:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
5 YT NULL
6 IS 5
Chcę mieć możliwość uzyskania rekordów związanych tylko z hierarchią zaczynającą się od określonej osoby. Więc gdybym poprosił o hierarchię CJ przez PersonID = 1, uzyskałbym:
PersonID | Initials | ParentID
1 CJ NULL
2 EB 1
3 MB 1
4 SW 2
A dla EB dostałbym:
PersonID | Initials | ParentID
2 EB 1
4 SW 2
Trochę utknąłem w tym, nie mogę pomyśleć, jak to zrobić poza odpowiedzią o stałej głębi opartą na kilku połączeniach. Zrobiłoby to tak, jak to się dzieje, ponieważ nie będziemy mieć wielu poziomów, ale chciałbym to zrobić poprawnie.
Dzięki! Chris.