Ако използвате SQL Server 2005 или по-нова версия, можете да използвате рекурсивни заявки, за да получите вашата информация. Ето един пример:
With tree (id, Name, ParentID, [level])
As (
Select id, Name, ParentID, 1
From [myTable]
Where ParentID = 0
Union All
Select child.id
,child.Name
,child.ParentID
,parent.[level] + 1 As [level]
From [myTable] As [child]
Inner Join [tree] As [parent]
On [child].ParentID = [parent].id)
Select * From [tree];
Тази заявка ще върне реда, поискан от първата част (където ParentID =0) и всички подредове рекурсивно. Това помага ли ви?
Не съм сигурен, че разбирам какво искате да се случи с вашата вложка. Можете ли да предоставите повече информация по отношение на очаквания резултат, когато сте готови?
Успех!