declare @maincode char(60)
set @maincode='10.1210.0012'--产成品品号
declare @i int
set @i=0

--SELECT MD003 FROM #BOMMD WHERE MD001='CG.16120509001.00909'

select item.ID MID,item.Code MD001,item.Name MName,itemlin.ID ZID,itemlin.Code MD003,itemlin.Name ZName,
Convert(decimal(18,3),B.UsageQty) UsageQty --用量
,Convert(decimal(18,3),B.ParentQty) ParentQty --母件底数
,Convert(decimal(18,3),Convert(decimal(18,3),B.UsageQty)/Convert(decimal(18,3),B.ParentQty)) MD006 --计算实际用量
INTO #BOMMD
from CBO_BOMMaster as A  
inner join CBO_BOMComponent as B on A.ID = B.BOMMaster
left join CBO_ItemMaster item on A.ItemMaster=item.ID
left join CBO_ItemMaster itemlin on B.ItemMaster=itemlin.ID
where 
A.BOMType=0  --0 为自制件 1为委外
and A.AlternateType=0 --0 生产目的为主制造 1 为委外
and A.BOMType=0 --0 BOM类型为自制  1为委外 10.0115.0006
and 
A.Org=1002011047606283
and A.DisableDate > GETDATE() --失效日期需大于今天日期
--and A.ID in(select max(ID)
--from CBO_BOMMaster where Org='1002011047606283'
--group by BOMVersionCode,ItemMaster,Project
--having max(DisableDate) > GETDATE() )
--AND A.ItemMaster = (select id from CBO_ItemMaster where Code =('10.5001.0010') and Org='1002011047606283')

--MD001为主件品号,MD003为元件品号,两者形成对应关系
--定义主件品号临时表 
declare @tmp_main table (品号 CHAR(60))
--将待查品号存入主件品号临时表 
INSERT INTO @tmp_main  SELECT MD003 FROM #BOMMD WHERE MD001=@maincode
--定义BOM明细临时表
declare @tmp_bom table (主件品号 char(60),元件品号 char(60),组成用量 float,阶数 int)
--将待查品号下一级元件品号数据存入BOM明细临时表
insert into @tmp_bom select MD001,MD003,MD006,@i from #BOMMD 
       where MD001 =@maincode
--如果BOMM表MD001(主件品号)存在于BOM明细临时表中的元件品号且阶数为当前最低层,进入循环
while exists(select * from #BOMMD where MD001 in (select 元件品号 from @tmp_bom where 阶数=@i))
begin
    --向BOM明细临时表插入BOMMD中MD001与主件品号临时表品号一致的数据(以主件品号临时表左关联BOMMD,存在多对一关系)
   insert into @tmp_bom select MD001,MD003,MD006,@i+1 from 
          (select MD001,MD003,MD006 from @tmp_main LEFT join #BOMMD on 品号=MD001
                  )A where MD001 is not null
    --清空主件品号临时表
    delete from @tmp_main 
    --向主件品号临时表插入BOMMD中的主品号存在于BOM明细临时表元件品号的MD003(子品号)
    INSERT INTO @tmp_main  SELECT MD003 FROM #BOMMD WHERE MD001
           in (select 元件品号 from @tmp_bom where 阶数=@i)
    set @i=@i+1       
end    
select *  from @tmp_bom  ORDER BY 阶数,元件品号

drop table #BOMMD

U9Bom阶层展开脚本相关推荐

  1. 油猴脚本开发学习1--豌豆荚快速查看所有版本

    文章目录 1.需求来源: 2.开发者工具开发: 3.油猴插件开发: 1).油猴学习: 2).可以自己找几个学习简单一下 3).我最终的脚本: 4).你可以选择新建 4.注意点: 1.油猴,run at ...

  2. Web Application Stress Tool(WAS)性能测试

    摘要:这篇文章讨论了性能测试对于成功发布一个网络应用的重要性,集中讨论了微软的Web Application Stress (WAS)这个用于测试Duwamish Online的性能的工具. 内容 介 ...

  3. 【翻译】25个浏览器开发工具的秘密

    原文:http://www.andismith.com/blog/2011/11/25-dev-tool-secrets/ 作者:Andi Smith 翻译:25个浏览器开发工具的秘密 开发 过去几年 ...

  4. Hi3516A开发--目录分析

    Hi3516A_SDK_Vx.x.x.x 目录结构如下:         |-- sdk.cleanup                 # SDK清理脚本     |-- sdk.unpack   ...

  5. 程序员精进之路:性能调优利器--火焰图

    作者:厉辉,腾讯 CSIG 后台开发工程师 本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解. 让我们回想一 ...

  6. badboy的录制和jmeter的使用

    v  Jmeter是什么 Apache Jmeter是Apache组织开发的基于Java的压力测试工具. Jmeter可以用于对服务器.网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析 ...

  7. 参数调优为什么要采样_程序员精进之路:性能调优利器--火焰图

    本文主要分享火焰图使用技巧,介绍 systemtap 的原理机制,如何使用火焰图快速定位性能问题原因,同时加深对 systemtap 的理解. 让我们回想一下,曾经作为编程新手的我们是如何调优程序的? ...

  8. 第一季4:Hi3518E_SDK_Vx.x.x.x的SDK目录结构

    Hi3518E_SDK_Vx.x.x.x 目录结构如下:    (执行./sdk.upack之后的目录)     |-- sdk.cleanup                 # SDK清理脚本   ...

  9. Hi3519V101_SDK_Vx.x.x.x 目录结构

    Hi3519V101_SDK_Vx.x.x.x 目录结构如下: Hi3519V101_SDK_Vx.x.x.x 目录结构如下:         |-- sdk.cleanup             ...

最新文章

  1. React-native 官方 demo
  2. IsWow64的真实用途
  3. PYTHON之DEF
  4. 顺利搭建了oracle
  5. CSS知识点整理(2):框模型,定位
  6. Installshield 文件及文件夹操作
  7. js判断对象为空_在 JavaScript 中如何检查对象为空
  8. atitit.高性能遍历 文本文件行 attilax总结
  9. 【中文信息处理】实验一_语料库统计_基于词表的分词
  10. nmds与mds的区别_常见分析方法 | PCA、PCoA和NMDS有什么区别?
  11. 三年java不会线程_Java后端开发三年多线程你都懂,问你异步编程你说你没听过???...
  12. mysql like 百分号_mysql语句中使用like后面的%(百分号)的问题
  13. [转自老马的文章]用MODI OCR 21种语言
  14. 五子棋PVP项目总结
  15. 一种工控蜜罐识别与反识别技术研究与应用实践
  16. 1413. 逐步求和得到正数的最小值
  17. rrpp+ospf环网组建
  18. chatgpt如何自动生成角色prompt模板
  19. 呼叫中心系统对接开发-网关和中继的对接
  20. 【软件安全】API HOOK

热门文章

  1. python安装盒怎么打开_Python学习笔记(六)Python盒子:模块,包和程序
  2. Android系统框架
  3. Win10系统怎么使用U盘重装(图文并茂)
  4. Windows beanstalkd启动
  5. Linux让root@bogon变回localhost
  6. Flutter showDialog 如何刷新 setStatus
  7. 自学python之路(mac升级自带Python)
  8. 【三层】我眼中的三层结构
  9. 【PAT乙级】三人行
  10. Objective-C 30分钟入门教程