Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择“查询物料清单”_Sql_Sql Server 2008 - Fatal编程技术网

Sql 选择“查询物料清单”

Sql 选择“查询物料清单”,sql,sql-server-2008,Sql,Sql Server 2008,我们的物料清单表有3个主要列:零件号、父零件和级别代码0没有父项,3是子项的子项,等等 我将尝试基于单个部分进行查询,并获取其所有子项及其子项,以此类推 这看起来很简单,但我一直在努力解决这个问题。有人有他们能提供的解决方案吗 和往常一样,我感谢你的帮助 根据Randy的要求,以下是更多信息: PARPRT=父 压缩=组件 在屏幕截图中,所有零部件都是“101002”物料清单的一部分 稍后在下表中,您将看到在PARPRT列中列出的COMPRT中的每个组件,以及组成它们的组件 我想查询“10100

我们的物料清单表有3个主要列:零件号、父零件和级别代码0没有父项,3是子项的子项,等等

我将尝试基于单个部分进行查询,并获取其所有子项及其子项,以此类推

这看起来很简单,但我一直在努力解决这个问题。有人有他们能提供的解决方案吗

和往常一样,我感谢你的帮助

根据Randy的要求,以下是更多信息:

PARPRT=父 压缩=组件

在屏幕截图中,所有零部件都是“101002”物料清单的一部分

稍后在下表中,您将看到在PARPRT列中列出的COMPRT中的每个组件,以及组成它们的组件

我想查询“101002”的BOM表,不仅要得到其中PARPRT=“101002”的4个零件,还要得到它们的压缩机等等


感谢那些建议CTE的人。这正是我想要的

这是我经过反复试验后得出的问题

使用零件数据库 去 声明@thesinglepartchar30='100001'; 使用BOM参数02、压缩机02、QTYPER 02 像 -锚定构件定义 选择e.PARPRT_02、e.COMPRT_02、e.QTYPER_02 来自dbo.Product_结构,作为e 其中e.PARPRT_02=@singlepart 联合所有 -递归成员定义 选择e.PARPRT_02、e.COMPRT_02、e.QTYPER_02 来自dbo.Product_结构,作为e 内部连接BOM表为d 在e.PARPRT_02=d.COMPRT_02上 选择* 从物料清单


你没有提供足够的信息给任何人给你一个有用的答案。请发布相关表的架构,以及您一直在使用的Select语句。最高级别是多少?如果较大,则需要使用递归CTE来进行此类查询。因为您在SQL Server 2008上,所以您可能需要考虑在该表中使用层次ID。本文展示了如何将其用于BOM:看看递归CTE: