由于T8自带的报表输出太慢,故开发自定义功能。

一共写了9层BOM,如果不够也可以按这个逻辑继续加BOM阶层数。


if object_id('tempdb..#BOM_LIST') is not null drop table #BOM_LIST
SELECT B.PRD_NO 成品品号,B.SPC 成品描述,B.NAME 母件名称,B.QTY 母件数量,B.NAME 子件上层型号,A.PRD_NO 子件品号,A.NAME 子件型号,C.SPC 子件描述,C.UT 子件单位,
A.QTY/A.QTY_BAS 用量,
'1' '阶数',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 母件数量,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 母件数量,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 母件数量,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 母件数量,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 母件数量,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 母件数量,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 母件数量,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 母件数量,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

示例效果如下:

ERP天思T8后台SQL批量查询多阶BOM(九层)相关推荐

  1. NC65 后台sql查询科目余额表

    NC65 后台sql查询科目余额表 select org_accountingbook.code 账簿编码,org_accountingbook.name 账簿名称,bd_accasoa.dispna ...

  2. mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询

    数据操作是编程中避免不了的操作,这也就牵扯到了数据库的增删改查,而实际工作中我们最常用到的是增改查.今天要介绍的是Go 语言查询MongoDB数据库. 操作mongodb使用的包是"http ...

  3. SQL批量修改字段值

    SQL关联查询&修改字段,正确范例如下: --批量修改报告单位名称&更新时间--tt和tp两表关联查询,将符合条件的tt表中的principal字段更新到tp表的ruperson字段m ...

  4. thinkphp5基本的一些操作/API友好/获取请求信息(Request)/判断请求类型(GET...)/验证参数数据(Validate)/连接数据库/原生sql语句查询

    文章目录 一.API友好 1.举两个thinkphp5关于API友好的例子 (1)数据输出 (2)错误调试Trace 二.获取请求信息(Request) 1.获取URL信息 2.获取 模块/控制器/操 ...

  5. python批量查询数据库_Python + MySQL 批量查询百度收录

    做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...

  6. hibernate批量查询_使用Hibernate批量获取

    hibernate批量查询 如果需要从Java处理大型数据库结果集,则可以选择JDBC,以提供所需的低级控制. 另一方面,如果您已在应用程序中使用ORM,则回退到JDBC可能会带来一些额外的麻烦. 在 ...

  7. 音乐后台管理 歌手查询功能 ktv 1216

    音乐后台管理 歌手查询功能 ktv 1216 登陆成功后 菜单栏 歌手查询界面 查询语句 保留有效的列 歌手查询窗体 界面 load方法加载数据 加载下拉框 加载到dgv 绑定组合框数据 绑定dgv ...

  8. sql批量插入防止重复插入_使用SQL批量插入锁定配置

    sql批量插入防止重复插入 One challenge we may face when using SQL bulk insert is whether we want to allow acces ...

  9. sql 一次性批量插入_考虑使用SQL批量插入的安全性

    sql 一次性批量插入 In this article, we'll discuss security implications of using SQL Bulk Insert and how to ...

  10. athena sql_使用SQL Server查询Amazon Athena外部表

    athena sql This article covers the following topics: 本文涵盖以下主题: Overview of the Amazon Athena 亚马逊雅典娜概 ...

最新文章

  1. Java web 强制301跳转
  2. python3环境下“No module named nibabel”的解决办法
  3. jqGrid ColModel Options
  4. PB级分布式大数据的处理和分析应用
  5. @ReponseBody返回json格式的数据
  6. linux摄像头内核驱动开发,FS_S5PC100平台上Linux Camera驱动开发详解(一)
  7. 带有Spring Boot 2.0的Spring Security:UserDetailsS​​ervice
  8. python解题_python实现用户答题功能
  9. ​小米 11 发布,售价 3999 元起;罗永浩回应败诉半导体公司;deepin 20.1(1010) 发布|极客头条...
  10. 获取字符串的真实长度
  11. matlab模拟静电场边值,静电场边值问题有限差分法的仿真分析
  12. 大话设计模式之爱你一万年:第一章 设计模式基本概念:1.软件设计模式概述
  13. java判断时间是否在某个时间段内
  14. Mac 屏幕录制 权限 没有可勾选或添加的App选项 产生原因和解决办法
  15. 存储过程 生成拼音码与五笔码
  16. 30、【backtrader股票策略】《151 trading strategies》中的支撑与阻力策略(support and resistance)
  17. 大数据人工智能时代你跟上步伐了吗?(号称第四次技术革命)
  18. 副业怎么样通过手游达到月入过万
  19. 不入耳式蓝牙耳机什么牌子好、最好的骨传导耳机推荐
  20. c语言中关键字的含义,c语言中的关键字有哪些?有什么含义?

热门文章

  1. Hamcrest 测试匹配框架
  2. AE动画导出json工具:bodymovin
  3. 搭建人人开源后台管理平台
  4. 移动互联智慧杭州、技术精英引领中国
  5. 软件开发模型、瀑布模型、V模型、原型模型、增量模型、螺旋模型、喷泉模型
  6. Python——付费/版权歌曲下载
  7. Windows 7下可用的“超级终端”——Hypertrm和SecureCRT
  8. 合成PDF(多文件变一文件、多页变一页)
  9. UGMT buildingEXODUS v4.0 WiN32.rar
  10. iptables指南