WITH CTE(bom_no,prd_no,id_no,qty )
AS
(select bom_no,prd_no,id_no,qty from tf_bom WHERE BOM_NO='3110503092->A0'
UNION ALL
SELECT A.BOM_NO,A.PRD_NO,A.id_no,CAST((B.qty*A.QTY) as NUMERIC(28,8)) AS qty
FROM CTE B
INNER JOIN tf_bom A on A.bom_NO=B.id_no )
SELECT bom_no,prd_no,id_no,qty FROM CTE where not exists( select 1 from tf_bom where bom_NO=CTE.id_no)