以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 多级展开BOM  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=151871)

--  作者:susanhe
--  发布时间:2020/7/6 15:03:00
--  [求助] 多级展开BOM
你好,老师,如图表是在SQL服务器上的,我要实如下查询,点按钮后保存到表A中。谢谢老师了。


  物料名称 用量
  6.BT_000350_00 1
.1 2.BT_000350 1
..2 2.BT_000350_00 1
...3 1.1.BT_000350_00 1
.1 1.1.BT_HFMB8-35 1


--  作者:susanhe
--  发布时间:2020/7/6 15:03:00
--  

[此贴子已经被作者于2020/7/6 15:03:07编辑过]

--  作者:susanhe
--  发布时间:2020/7/6 15:03:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:捕获1.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/7/6 15:28:00
--  
没看懂。请提供实例,然后说明详细的计算规则和步骤
--  作者:susanhe
--  发布时间:2020/7/6 16:46:00
--  
老师,如实例,  BOM表是基本资料,要得到表A的结果。

6.BT_000350_00 是总成, 下面包含 2.BT_000350 和 1.1.BT_HFMB8-35。 

2.BT_000350 下面包含 2.BT_000350_00

2.BT_000350_00 下面包含 1.1.BT_000350_00

感谢。这个表BOM表是SQL上,如何实现不下载到Foxtable中,直接从SQL得出结果 ?


--  作者:susanhe
--  发布时间:2020/7/6 16:47:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:bom 多层展开.foxdb


--  作者:有点蓝
--  发布时间:2020/7/6 17:19:00
--  
参考:https://www.baidu.com/baidu?word=sqlserver%20CTE递归

大概

;WITH t AS 
(
  SELECT [FNumber],[PN],[FQty],1 as lvl FROM BOM where [FNumber] =\'6.BT_000350_00\'
  UNION ALL 
  SELECT a.[FNumber],a.[PN],a.[FQty],b.lvl+1 FROM BOM a JOIN t b ON a.[FNumber] = b.[PN]
)
SELECT [PN],[FQty],lvl FROM t ORDER BY lvl;

--  作者:绿火柴
--  发布时间:2020/7/6 17:37:00
--  
多级BOM有个问题,就是嵌套,
如果发生嵌套,要提示,并拒绝增加或修改。
这个帮助中没有写到。希望官方有好点的方法放出来。

--  作者:有点蓝
--  发布时间:2020/7/6 20:09:00
--  
以下是引用绿火柴在2020/7/6 17:37:00的发言:
多级BOM有个问题,就是嵌套,
如果发生嵌套,要提示,并拒绝增加或修改。
这个帮助中没有写到。希望官方有好点的方法放出来。

这个是业务问题,不是技术问题