我有一个包含零件和不同阶段的表格。 FromID=0
是输入零件材料的位置。 part1
和part2
经过加工,然后组装成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
使用修改后的预购树遍历来标记行以便快速查询。 看看这篇文章:
http://iamcam.wordpress.com/2006/03/24/storing-hierarchical-data-in-a-database-part-2a-modified-preorder-tree-traversal/
如果计划在 SQL 服务器上部署,则可以考虑使用公用表表达式:
http://msdn.microsoft.com/en-us/library/ms190766(v=sql.105).aspx