0

我有一张桌子,上面有零件和不同的阶段。FromID=0是输入零件材料的地方。part1part2进行处理,然后组装成part3.

ID    Partname   FromID     Parts     Process
----------------------------------------------------
1     part1           0        10     process1 part1       
2     part1           1         0     process2 part1
3     part2           0        10     process1 part2
4     part2           1         0     process2 part2
5     part3           2         0     Assembly part1
6     part3           4         0     Assembly part2

有没有办法编写查询来获取一个部件及其所有子部件,它们也可以处理嵌套的子部件?我正在使用 MS Access 2010 和 C#。

结果应该是这样的

零件名称 = 第 1 部分

ID    Partname   FromID     Parts     Work
-------------------------------------------
1     part1           0        10     work1 part1       
2     part1           1         0     work2 part1

零件名称 = 第 2 部分

ID    Partname   FromID     Parts     Work
-------------------------------------------
3     part2           0        10     work1 part2
4     part2           1         0     work2 part2

零件名称 = 第 3 部分

ID    Partname   FromID     Parts     Work
-------------------------------------------
1     part1           0        10     work1 part1       
2     part1           1         0     work2 part1
5     part3           2         0     Assembly part1
3     part2           0        10     work1 part2
4     part2           1         0     work2 part2
6     part3           4         0     Assembly part2
4

1 回答 1

0

使用修改后的前序树遍历来标记行以便快速查询。看看这篇文章:

http://iamcam.wordpress.com/2006/03/24/storing-hierarchical-data-in-a-database-part-2a-modified-preorder-tree-traversal/

如果您计划在 SQL Server 上部署,您可以考虑使用公用表表达式:

http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx

于 2012-09-23T08:49:54.040 回答