SQL递归从PSP获取BOM

问题描述

我有一个 MS sql Server (2016) 和一个包含 i.a.像这样的表:(它是在 Autodesk PSP 数据库中创建的视图 - 请不要问为什么...... :-))

CHILD_aimKEY 数量 PARENT_aimKEY StatusOfParent StatusOfChild
5706657 1 5664344 100 103
5706745 1 5664344 100 103
5707104 1 5664344 100 103
5707109 1 5664344 100 100
5801062 1 5664344 100 103

“孩子”可以包含其他“孩子”,在这种情况下,他们将成为他们的“父母”。

所以它是来自 CAD PDM 系统的标准结构化 BOM 表。

如果我执行以下“选择语句”,我会得到顶级父级的所有子级:

SELECT [CHILD_aimKEY],[POSITION],[QUANTITY],[PARENT_aimKEY],[StatusOfParent],[StatusChild] FROM database_table where Parent_aimkey = '5664344'

(如上表所示)

我的第一个问题是:如何从该表中递归处理每个父级的所有子级? (可能是其他表或直接输出) 格式应为:Parent_aimkey、Child_aimkey、Quantity

第二个问题有点复杂:

我用一些“伪代码”试试:

If Tree_Level_of_DIRECT_Parent < 3 then show CHILD_aimKEY,QUANTITY in queryresult_above
If Tree_Level_of_DIRECT_Parent > 2 and StatusOf_DIRECT_Parent = 103 and StatusOf_DIRECT_Child = 103 then show CHILD_aimKEY,QUANTITY in queryresult_above

这在某种程度上可能吗? (如果需要扩展其他字段或其他表的数据库视图,那没问题)

我知道这看起来有点令人困惑,但我需要的是 sql 语句或存储过程中的 Autodesk Inventor 结构化 BOM。

任何人都会非常感激

谢谢

亚历克斯。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)