【发布时间】:2020-03-03 10:19:22
【问题描述】:
我有一个在表 tblComposition 中描述的组装单元的组合,如下所示:
+-------+--------+----------+
| Child | Parent | Quantity |
+-------+--------+----------+
| 111 | 11 | 1 |
| 112 | 11 | 4 |
| 113 | 11 | 1 |
| 211 | 21 | 3 |
| 222 | 22 | 5 |
| 21 | 2 | 1 |
| 22 | 2 | 3 |
| 11 | 1 | 1 |
| 12 | 1 | 1 |
| 1 | 1 | 1 |
| 2 | 2 | 1 |
+-------+--------+----------+
也就是说,5个零件编号222组装在单元22中,然后3个单元22组装在产品2中。嵌套可以任意大。
如果我在 tblProducts 中定义了第二天的生产计划:
+---------+------+
| Product | Plan |
+---------+------+
| 1 | 123 |
| 2 | 456 |
+---------+------+
是否有任何 SQL 查询或 VBA 代码来自动计算制造子组件和零件的计划? 所以我可以得到以下结果:
+-------+----------+
| Child | Plan |
+-------+----------+
| 111 | 123 |
| 112 | 492 |
| 113 | 123 |
| 211 | 1368 |
| 222 | 6840 |
| 21 | 456 |
| 22 | 1368 |
| 11 | 123 |
| 12 | 123 |
| 1 | 123 |
| 2 | 456 |
+-------+----------+
【问题讨论】:
-
父级 1 是否以自己为父级的子级出现在表中?
-
112 也是 11 的孩子,但不受影响。您是否仅在数量为 1 时应用此
nesting?请将您的所有条件添加到您的问题中并使用统一的术语。 -
@HarassedDad,是的,为什么我不编辑初始和结果表
-
@krishKM,我不确定,你是什么意思。112 是 11 岁的孩子,计划 492 = 123(11 人的计划)* 4 件(每件产品)。跨度>
-
@Triostrong 。 . . MS Access 不支持递归或分层查询。您需要使用应用程序代码来执行此操作,大概是 VBA。