多层BOM拆解

evanhb 2016-12-14 08:40:13

CREATE TABLE tempbom

(flever varchar(255),
findex int ,
fItem varchar(255))

INSERT INTO tempbom
SELECT '0',1,'a'
UNION ALL
SELECT '1',2,'b'
UNION ALL
SELECT '1.1',3,'c'
UNION ALL
SELECT '1.2',4,'d'
UNION ALL
SELECT '1.2.1',5,'c'

SELECT * FROM tempbom
要实现结果
flever fINDEX,fitem
0 1 a
1 2 b

flever fINDEX,fitem
1 2 b
1.1 3 c
1.2 4 d


flever fINDEX,fitem
1.2 4 d
1.1.1 5 c
...全文
392 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbdzjx 2016-12-15
  • 打赏
  • 举报
回复
这样?
with t1(flever, fINDEX, fitem) as
(
select '0', 1, 'a' union all
select '1', 2, 'b' union all
select '1.1', 3, 'c' union all
select '1.2', 4, 'd' union all
select '1.2.1', 5, 'c'
)
select b.fitem, a.fitem
from t1 a 
inner join 
t1 b 
on (a.flever like b.flever+'.%' and a.flever not like b.flever+'.%.%') or (a.flever='1' and b.flever='0')
evanhb 2016-12-14
  • 打赏
  • 举报
回复
flever fINDEX ,fitem 0 1 a 1 2 b 1.1 3 c 1.2 4 d 1.2.1 5 c 以上是一个展开的多层BOM,0表示每一层的母件A,a由于B组成,B由C和D组成,D由C组成,想实现 母件 子件 a b B c B d D c
evanhb 2016-12-14
  • 打赏
  • 举报
回复
现在有数据 flever fINDEX ,fitem 0 1 a 1 2 b 1.1 3 c 1.2 4 d 1.2.1 5 c 实现结果 母件 子件 a b B c B d D c
卖水果的net 2016-12-14
  • 打赏
  • 举报
回复
没看出规则来,楼主详细讲讲;

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧