~If you want to recursively traverse the BOM you may need a CTE query?~

Nice Ken, thanks for sharing.