根据物料清单查找父项

时间:2017-11-17 17:48:00

标签: sql

我正在试图弄清楚如何组合一个SQL语句,让我根据其物料清单在我们的数据库中找到最终项目。我想你可以说这就像是反向BOM查询问题。

我的表结构非常简单。

-End-item table
-Component table
-Linking table to tie together multiple components to an end item record.

我拥有的数据只是组件列表,我想找到最终项目。由于每种物料清单都是唯一的,因此必须完美匹配物料清单,即组件的确切数量以及与组件SKU编号的精确匹配。在某些情况下,2个最终产品可能会使用所有相同的组件,但其中一个只使用一个或多个额外的部分,使最终产品的SKU编号不同,因此必须考虑到这一点。也就是说,它必须完美匹配BOM。

如果不是一个彻头彻尾的答案,有人至少可以引导我找到正确的道路吗?

------更新---------- 表结构就是这样的。

    ManufacturedPart
,--------------------,
|   ID  |  PART_NUM  |  
|--------------------|
|   1   |  V3175-01  |
|   2   |  V3367-01  |
|   3   |  V3988-01  |
|   4   |  V3175-CV  |
`--------------------`

   Component
,--------------------,
|   ID  |  COMP_NUM  |  
|--------------------|
|   1   |  V3175     |
|   2   |  V3367     |
|   3   |  V3369     |
|   4   |  V3114     |
|   5   |  V3370     |
|   6   |  V4060     |
|   7   |  V3550     |
|   8   |  V3988     |
`--------------------`

            ManufacturedComponent
,-------------------------------------------------,
|   ID  |  MANUFACTURED_PART_ID  |  COMPONENT_ID  |
|-------------------------------------------------|
|   1   |          1             |       1        |
|   2   |          1             |       4        |
|   3   |          1             |       6        |
|   4   |          2             |       2        |
|   5   |          2             |       3        |
|   6   |          2             |       5        |
|   7   |          2             |       7        |
|   8   |          3             |       1        |
|   9   |          3             |       8        |
|   10  |          4             |       1        |
|   11  |          4             |       4        |
`-------------------------------------------------`

假设我只有要搜索的COMP_NUM(组件编号),我希望匹配包含该组件精确列表的ManufacturedPart。

所以一些例子:如果我有组件V3175,V3114和V4060,它应该匹配回V3175-01制造的部件。但是,如果我只有V3175和V3114组件,它应该与V3175-CV制造的部件匹配。如果我有V3367,V3369,V3370和V3550组件,它应与制造的V3367-01匹配。

我还没有编写任何SQL,因为我不确定如何解决问题..

0 个答案:

没有答案