how about this one
SET @InvoiceID = 1;WITH rCTE AS
(
SELECT InvoiceID, BookingID, 1 AS HierarchyLevel
FROM #IDs
WHERE InvoiceID = @InvoiceID
UNION ALL
SELECT IDs.InvoiceID, ids2.BookingID, rCTE.HierarchyLevel + 1 AS HierarchyLevel
FROM rCTE
JOIN #IDs ids
ON IDs.BookingID = rCTE.BookingID AND
ids.InvoiceId <> rcte.InvoiceID
INNER JOIN #IDs ids2
ON ids2.InvoiceId = ids.InvoiceID
WHERE rCTE.InvoiceID<ids2.InvoiceId
)
select * from Rcte
Every rule in a world of bits and bytes, can be bend or eventually be broken
MyBlog About Common dialog control
A Visualizer for viewing SqlCommand object script [/url]