BOM 死循环如何检测问题,如下,如何检测循环A—D—F—A
BOM结构(料号1、料号2、品名1、品名2、单位用量、....等等字段)
料号1(上阶) 料号2(下阶)
A B
A C
A D
D E
D F
D G
F A
F H
CSDN查阅过其他资料:http://blog.csdn.net/htl258/article/details/5456223
但是料号的字段有可能是6位或者7位,也就是不固定的,所以不大适合,不知道各位有什么其他更好的方法,我想写在存储过程中
存储过程 死循环 BOM结构 层次结构 树形结构
------解决方案--------------------
--> 测试数据:#tb
IF OBJECT_ID('TEMPDB.DBO.#tb') IS NOT NULL DROP TABLE #tb
GO
CREATE TABLE #tb([父节点] VARCHAR(1),[节点] VARCHAR(1))
INSERT #tb
SELECT NULL,'A' UNION ALL
SELECT 'A','B' UNION ALL
SELECT 'A','C' UNION ALL
SELECT 'A','D' UNION ALL
SELECT 'D','E' UNION ALL
SELECT 'D','F' UNION ALL
SELECT 'D','G' UNION ALL
SELECT 'F','A' UNION ALL
SELECT 'F','H'
--------------开始查询--------------------------
SELECT [节点] FROM #tb GROUP BY [节点] HAVING COUNT(*)>1
----------------结果----------------------------
/*
节点
A
*/
------解决方案--------------------
BOM多层,通常是作层次控制,比如超过20报错即可
------解决方案--------------------
我也想不到更好的。呵呵