ERP系统中的BOM结构通常是单层的,如何按照层次展开呢?除了递归,还可以用下面这个方法实现。
代码如下:
DECLARE @iLevel INT
SET @iLevel=0
UPDATE tmp01 SET FLevel=@iLevel,NewProd=Prod, OID=FID WHERE PID IS NULL
WHILE @iLevel<10
BEGIN
SET @iLevel=@iLevel+1
UPDATE x SET x.NewProd=replicate('--',@iLevel)+x.Prod,x.OID=y.oID*100 +x.fID,x.FLevel= @iLevel
FROM tmp01 x, tmp01 y WHERE x.PID=y.FID AND y.FLevel =@iLevel-1
END