I played with CTEs for a while without any luck. If I had a single table with the information combined into it would have a solution as I have done that in the past. My problem this time is most definitely adding to the confusion of having two tables to JOIN.EDIT:Well, thanks for the push off the cliff :)...I guess that's what it took. I wasn't using the JOIN in the final select portion of the CTE. Final code belowWhen I was just about ready to throw my hands in the air and start smoking again, I finally have a solution. ;with cte_assets as ( select a.f_locationid ,a.f_locationparent ,a.f_locationname ,0 as [lev] ,convert(varchar(30), '0_' + convert(varchar(10), f_locationid)) lineage from tb_locations a where f_locationID = '1' UNION ALL --recusive portion select a.f_locationid ,a.f_locationparent ,a.f_locationname ,c.[lev] + 1 ,convert(varchar(30), lineage + '_' + convert(varchar(10), a.f_locationid)) from cte_assets c join tb_locations a on a.f_locationparent = c.f_locationID)--final select select * from cte_assets c JOIN tb_assets ass on ass.f_assetlocation = c.f_locationID ORDER BY f_assetname DESC