ERP天思T8后台SQL批量查询多阶BOM(九层)
生活随笔
收集整理的這篇文章主要介紹了
ERP天思T8后台SQL批量查询多阶BOM(九层)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
由于T8自帶的報表輸出太慢,故開發(fā)自定義功能。
一共寫了9層BOM,如果不夠也可以按這個邏輯繼續(xù)加BOM階層數(shù)。
?
if object_id('tempdb..#BOM_LIST') is not null drop table #BOM_LIST SELECT B.PRD_NO 成品品號,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,B.NAME 子件上層型號,A.PRD_NO 子件品號,A.NAME 子件型號,C.SPC 子件描述,C.UT 子件單位, A.QTY/A.QTY_BAS 用量, '1' '階數(shù)',A.LOS_RTO 單層損耗率,A.ID_NO INTO #BOM_LIST FROM TF_BOM A INNER JOIN PRDT C ON A.PRD_NO=C.PRD_NO INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第一層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,E.NAME 上層型號,D.PRD_NO,D.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS) 用量, ' 2',D.LOS_RTO,D.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO INNER JOIN PRDT C ON D.PRD_NO=C.PRD_NO LEFT JOIN MF_BOM E ON E.BOM_NO=D.BOM_NO --WHERE A.BOM_NO='C121004303200->' ---第二層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,F.NAME 上層型號,E.PRD_NO,E.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS) 用量 ,' 3',E.LOS_RTO,E.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO INNER JOIN PRDT C ON C.PRD_NO=E.PRD_NO INNER JOIN MF_BOM F ON F.BOM_NO=E.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第三層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,G.NAME 上層型號,F.PRD_NO,F.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS)*(F.QTY/F.QTY_BAS) 用量 ,' 4',F.LOS_RTO,F.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO --3階表名 LEFT JOIN TF_BOM F ON F.BOM_NO=E.ID_NO INNER JOIN PRDT C ON C.PRD_NO=F.PRD_NO INNER JOIN MF_BOM G ON G.BOM_NO=F.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第四層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,H.NAME 上層型號,G.PRD_NO,G.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS)*(F.QTY/F.QTY_BAS)*(G.QTY/G.QTY_BAS) 用量 ,' 5',G.LOS_RTO,G.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO --3階表名 LEFT JOIN TF_BOM F ON F.BOM_NO=E.ID_NO --4階表名 LEFT JOIN TF_BOM G ON G.BOM_NO=F.ID_NO INNER JOIN PRDT C ON C.PRD_NO=G.PRD_NO INNER JOIN MF_BOM H ON H.BOM_NO=G.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第五層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,I.NAME 上層型號,H.PRD_NO,H.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS)*(F.QTY/F.QTY_BAS)*(G.QTY/G.QTY_BAS)*(H.QTY/H.QTY_BAS) 用量 ,' 6',H.LOS_RTO,H.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO --3階表名 LEFT JOIN TF_BOM F ON F.BOM_NO=E.ID_NO --4階表名 LEFT JOIN TF_BOM G ON G.BOM_NO=F.ID_NO --5階表名 LEFT JOIN TF_BOM H ON H.BOM_NO=G.ID_NO INNER JOIN PRDT C ON C.PRD_NO=H.PRD_NO INNER JOIN MF_BOM I ON I.BOM_NO=H.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第六層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,J.NAME 上層型號,I.PRD_NO,I.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS)*(F.QTY/F.QTY_BAS)*(G.QTY/G.QTY_BAS)*(H.QTY/H.QTY_BAS)*(I.QTY/I.QTY_BAS) 用量 ,' 7',I.LOS_RTO,I.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO --3階表名 LEFT JOIN TF_BOM F ON F.BOM_NO=E.ID_NO --4階表名 LEFT JOIN TF_BOM G ON G.BOM_NO=F.ID_NO --5階表名 LEFT JOIN TF_BOM H ON H.BOM_NO=G.ID_NO --6階表名LEFT JOIN TF_BOM I ON I.BOM_NO=H.ID_NO INNER JOIN PRDT C ON C.PRD_NO=I.PRD_NO INNER JOIN MF_BOM J ON J.BOM_NO=I.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第七層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,K.NAME 上層型號,J.PRD_NO,J.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS)*(F.QTY/F.QTY_BAS)*(G.QTY/G.QTY_BAS)*(H.QTY/H.QTY_BAS)*(I.QTY/I.QTY_BAS)*(J.QTY/J.QTY_BAS) 用量 ,' 8',J.LOS_RTO,J.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO --3階表名 LEFT JOIN TF_BOM F ON F.BOM_NO=E.ID_NO --4階表名 LEFT JOIN TF_BOM G ON G.BOM_NO=F.ID_NO --5階表名 LEFT JOIN TF_BOM H ON H.BOM_NO=G.ID_NO --6階表名LEFT JOIN TF_BOM I ON I.BOM_NO=H.ID_NO --7階表名LEFT JOIN TF_BOM J ON J.BOM_NO=I.ID_NO INNER JOIN PRDT C ON C.PRD_NO=J.PRD_NO INNER JOIN MF_BOM K ON K.BOM_NO=J.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第八層BOM UNION ALL SELECT B.PRD_NO,B.SPC 成品描述,B.NAME 母件名稱,B.QTY 母件數(shù)量,L.NAME 上層型號,K.PRD_NO,K.NAME 型號,C.SPC 描述,C.UT 子件單位, (A.QTY/A.QTY_BAS)*(D.QTY/D.QTY_BAS)*(E.QTY/E.QTY_BAS)*(F.QTY/F.QTY_BAS)*(G.QTY/G.QTY_BAS)*(H.QTY/H.QTY_BAS)*(I.QTY/I.QTY_BAS)*(J.QTY/J.QTY_BAS)*(K.QTY/K.QTY_BAS) 用量 ,' 9',K.LOS_RTO,K.ID_NO FROM TF_BOM A INNER JOIN MF_BOM B ON B.BOM_NO=A.BOM_NO --1階表名LEFT JOIN TF_BOM D ON D.BOM_NO=A.ID_NO ----2階表名LEFT JOIN TF_BOM E ON E.BOM_NO=D.ID_NO --3階表名 LEFT JOIN TF_BOM F ON F.BOM_NO=E.ID_NO --4階表名 LEFT JOIN TF_BOM G ON G.BOM_NO=F.ID_NO --5階表名 LEFT JOIN TF_BOM H ON H.BOM_NO=G.ID_NO --6階表名LEFT JOIN TF_BOM I ON I.BOM_NO=H.ID_NO --7階表名LEFT JOIN TF_BOM J ON J.BOM_NO=I.ID_NO --8階表名LEFT JOIN TF_BOM K ON K.BOM_NO=J.ID_NO INNER JOIN PRDT C ON C.PRD_NO=K.PRD_NO INNER JOIN MF_BOM L ON L.BOM_NO=K.BOM_NO --WHERE A.BOM_NO='C121004303200->' --第九層BOM order by B.PRD_NO,子件上層型號SELECT * FROM #BOM_LIST示例效果如下:
?
總結(jié)
以上是生活随笔為你收集整理的ERP天思T8后台SQL批量查询多阶BOM(九层)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP OB-缓冲区
- 下一篇: maven3.6.1下载与安装