This might help you
; WITH PRODUCT1 AS
(
SELECT*, DENSE_RANK() OVER( ORDER BY P.PARENT ) AS RN, 1 AS Lvl
FROMPRDST AS P
WHEREP.PARENT IN ( 1055874, 1055872 )
UNION ALL
SELECTPR.*, PR1.RN, PR1.Lvl + 1
FROMPRDST AS PR
INNER JOIN PRODUCT1 AS PR1 ON PR.PARENT = PR1.CHILD
)
SELECTPARENT, CHILD, CHILDQTY, POSNO
FROMPRODUCT1
ORDER BY RN, Lvl, PARENT
How to post data/code on a forum to get the best help - Jeff Moden
http://www.sqlservercentral.com/articles/Best+Practices/61537/