我在SQL数据库里有一个BOM表简单如下:
母件号 子件号 但要通过SQL编程使它运行结果为:
Y01 Y02 母件号 层次 子件号
Y01 Y03 Y01 1 Y02
Y01 Y04 Y01 .2 Y05
Y02 Y05 Y01 ..3 Y06
Y05 Y06 Y01 1 Y03
Y04 Y06 Y01 1 Y04
Y04 Y07 Y01 .2 Y06
Y01 .2 Y07
设定BOM表的个列的列名分别为mj,zj,下面的SQL能够输出你要的结果。
SELECT 'Y01' dcmj --顶层母件
,CASE a.le
WHEN 1 THEN '1'
WHEN 2 THEN '.2'
WHEN 3 THEN '..3'
END le
,a.zj
FROM (
SELECT mj,zj,LEVEL le
FROM BOM
START WITH mj='Y01'
CONNECT BY mj= PRIOR zj) a
baan code
SELECT ' 0006100104' dcmj --顶层母件
,DECODE(a.le ,1,'1',2,'.2',3 ,'..3') AS currlevel ,t$sitm
FROM (
SELECT t$mitm,t$sitm,LEVEL le
FROM baan.ttibom010231
START WITH t$mitm=' 0006100104'
CONNECT BY t$mitm= PRIOR t$sitm) a