当前位置:首页 > 技术心得 > 正文内容

BOM各层级计算真实用量

xjtudll3年前 (2022-01-30)技术心得5150

SELECT * FROM (

select 级别='1',A='A1',B='B1',用量='1',B真实用量='' UNION ALL
select 级别='2',A='B1',B='C1',用量='2',B真实用量='' UNION ALL
select 级别='3',A='C1',B='D1',用量='3',B真实用量='' UNION ALL
select 级别='3',A='C1',B='D2',用量='2',B真实用量='' UNION ALL
select 级别='3',A='C1',B='D3',用量='2',B真实用量='' UNION ALL
select 级别='3',A='C1',B='D4',用量='5',B真实用量='' UNION ALL
select 级别='4',A='D1',B='E1',用量='9',B真实用量='' UNION ALL
select 级别='4',A='D2',B='E2',用量='5',B真实用量='' ) #t
例如:
这里有 A1-B1-C1-D1-E1 要结果 A1-B1-C1-D1-E1
1 2 3 9 1 2 6 54
例如:
这里有 A1-B1-C1-D2-E2 要结果 A1-B1-C1-D2-E2
1 2 2 5 1 2 4 20
当级别高的行字段B等于级别低的行字段A时,将两行用量相乘放入低级别B字段对应的B真实用量中,若在一条流程里级别多了需要滚动相乘,如例子(级别数字越小级别越高)
要的结果如下:
0.3266298645016294

参考代码:

WITH CTE

AS

(SELECT *,QTY AS NEW_QTY FROM #T A

WHERE NOT EXISTS (SELECT 1 FROM #T WHERE LEVEL<A.LEVEL AND B=A.A)

UNION ALL

SELECT A.*,B.NEW_QTY*A.QTY

FROM #T A

JOIN CTE B ON A.A=B.B

WHERE A.LEVEL>B.LEVEL)

SELECT * FROM CTE

ORDER BY LEVEL,A

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/631/

标签: SQL
分享给朋友:

“BOM各层级计算真实用量” 的相关文章

基于状态机实现的按键处理算法

基于状态机实现的按键处理算法

这篇文章写了很久了,一直没发,现在发出来吧。 关于按键的基础知识,这里就不多写了,可以参考程序匠人的《按键漫谈》 一次完整的击键过程包括:等待阶段,闭合抖动阶段,有效闭合阶段,释放抖动阶段,有效释放阶段。释放抖动阶段对于按键处理用处不大,所以这个阶段被忽略了,即按键击键包括四个状态:等待阶段,闭合抖...

Quartus II 中管脚上拉电阻(弱上拉)的设置方法

Quartus II 中管脚上拉电阻(弱上拉)的设置方法

参考资料: http://blog.sina.com.cn/s/blog_706f04d20100oelx.html 由于系统需求,需要在管脚的内部加上上拉电阻,目的是为了有个固定的初始状态。 以Quartus II 11.0为例,具体过程如下: 1、在菜单Assignments 中选择Assig...

Xcode Warning: Multiple build commands for output file /xxx 解决

Xcode Warning: Multiple build commands for output file /xxx 解决

 现象: 编译后有如下警告: [WARN]Warning: Multiple build commands for output file /xxx 解决步骤如下: 1、选择你的工程 2、选择target 3、点击 Build Phases 4、展开...

Altium Designer:将Sch.Lib和Pcb.Lib库文件整合成.intlib库文件

Altium Designer:将Sch.Lib和Pcb.Lib库文件整合成.intlib库文件

参考资料: http://www.51hei.com/bbs/dpj-39220-1.html 每个.intlib (integrated library) 需包含 .pcblib (建封装) 和 .schlib (路线图) 两个文件。 (1) 创建 .intlib (file ->...

Keil得到C编译之后的汇编代码

Keil得到C编译之后的汇编代码

在Options for Target --> Listing标签页下 在C Compiler Listing: \*.lst部分中勾选Assembly Code,这样生成的LST文件中就会包含汇编源码了。 找到相应的lst文件,如图所示: 用记事本打开,里面就有汇编代码了...

android studio 3.0 前进和后退功能

使用android studio 3.0 开发Android程序时,需要用到前进和后退功能(跳到上一个源文件和下一个源文件) 快捷键是alt+Left 和alt+Right。 勾选view-->Toolbar 可以放到工具栏...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。