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

BOM各层级计算真实用量

xjtudll5年前 (2022-01-30)技术心得9220

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://www.xjtudll.cn/Exp/631/

标签: SQL
分享给朋友:

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

手表晶体管ppm和月差之间的关系

对于手表而言,月差是个比较重要的参数,月差太大,隔段时间手表就不准了,老要调时,对于懒人和完美主义者来说,就太麻烦了。当然,如果你不太在意时间的准确度,就无所谓了。 ppm是英文part per million的缩写,表示百万分之几,在不同的场合与某些物理量组合,常用于表示器件某个直流参数的精度。它...

proteus仿真时虚拟串口窗口丢失的解决办法

proteus仿真时虚拟串口窗口丢失的解决办法

在使用Proteus调试串口时会遇到自带的串口工具无法弹出虚拟串口解决办法如下:在Simulation中止后,进入工具栏Debug-> Reset Debug Pop up Windows,并在弹出窗口中选“yes”。 再次运行Simulation,可以发现窗口可以正常弹出。...

请确保此文件可访问并且是一个有效的程序集或COM组件

核心:重新注册dll 在项目中添加一个dll的引用时出现错误: 请确保此文件可访问并且是一个有效的程序集或COM组件 解决方法:运行--cmd--regsvr32 dll的绝对路径名(路径实例:c:/dll/xxx.dll) 如果是.NET的COM组件,要用Regasm注册...

C#将图片白色背景设置为透明

红色部分是关键 Image image = System.Drawing.Image.FromFile(@"C:\A.JPG"); Bitmap pbitmap = new Bitmap(image); pbitmap.MakeTransparent(Color.White);...

ios app在 waiting for review时重新上传程序

ios app在 waiting for review时重新上传程序

参考资料:http://houcengceng.com/?p=43 问题: ios app后发现了一个急需修改的bug,怎么办?不可能等审核reject,那样纯粹是浪费时间。 解决办法: 点击details进入后在link点击binary details,进入之后点击右上角reject...

按键精灵 获取控件内容(非窗体标题)

按键精灵 获取控件内容(非窗体标题)

想抓一个软件的 一个类名是Edit的输入框中的内容,句柄已经正确找到了,然后用精灵8自带的 Plugin.Window.GetText(Hwnd) 命令来获取,结果得不到输入框中的控件内容,只得到一个窗口标题 “ 1 ”。 如图示: 想获得这个输入框中的1222 这个...

发表评论

访客

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