thank slow i use second method it work , but it got limit on the level have to add according to the data this is my sql look like SELECT ts1.bommst_code,st1.stock_name as stockname1,1.00 as qty_req1, ts1.subbom_code AS lev1,st2.stock_name as stockname2,bd1.qty_req as qty_req2,ts2.subbom_code as lev2,st3.stock_name as stockname3,bd2.qty_req as qty_req3,ts3.subbom_code as lev3,st4.stock_name as stockname4,bd3.qty_req as qty_req4,ts4.subbom_code as lev4,st5.stock_name as stockname5,bd4.qty_req as qty_req5 FROM bom_detail ts1 Left join stockitem st1 on ts1.bommst_code=st1.stock_nbr and ts1.co_id=st1.co_id LEFT JOIN bom_detail ts2 ON ts2.bommst_code = ts1.subbom_code Left join stockitem st2 on ts1.subbom_code=st2.stock_nbr and ts1.co_id=st2.co_id Left join bom_detail bd1 on bd1.subbom_code=ts1.subbom_code and bd1.co_id=ts1.co_id LEFT JOIN bom_detail ts3 ON ts3.bommst_code = ts2.subbom_code Left join stockitem st3 on ts2.subbom_code=st3.stock_nbr and ts2.co_id=st3.co_id Left join bom_detail bd2 on bd2.subbom_code=ts2.subbom_code and bd2.co_id=ts2.co_id LEFT JOIN bom_detail ts4 ON ts4.bommst_code = ts3.subbom_code Left join stockitem st4 on ts3.subbom_code=st4.stock_nbr and ts3.co_id=st4.co_id Left join bom_detail bd3 on bd3.subbom_code=ts3.subbom_code and bd3.co_id=ts3.co_id LEFT JOIN bom_detail ts5 ON ts5.bommst_code = ts4.subbom_code Left join stockitem st5 on ts4.subbom_code=st5.stock_nbr and ts4.co_id=st5.co_id Left join bom_detail bd4 on bd4.subbom_code=ts4.subbom_code and bd4.co_id=ts4.co_id WHERE ts1.bommst_code not in (select distinct t.subbom_code from bom_detail t) and ts1.bommst_code=$P{stock_nbr} order by 1,2,3,4,5