欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

递归的另类应用.

更新时间: 2014-01-05 02:14:15 责任编辑: Author_N1

 

请教大家递归的另类应用..
问题描述:
传入一个产品号码参数HMAT,求生产这个产品(HMAT)所需要的材料(CHLVHMAT)及数量比例。
举例:
BP127-01
   71(2426K)  90
   BP127-10   10
BP127-10
  127    10
  24-1   30
  71(2426K)  60

所以,生产一个BP127-01,需要材料及数量比例为:
127            10/(90+10) X(10/(10+30+60))=0.01
24-1            10/(90+10)X(30/(10+30+60))=0.03
71(2426K)       90/(90+10) + [10/(90+10) X(60/(10+30+60))] =0.96

资料简单模拟如下,当然这是最简单的两层递归..
WITH t1 AS (
SELECT 'BP127-01'HMAT FROM dual UNION ALL 
SELECT 'BP127-10' FROM dual
),t2 AS (
SELECT 'BP127-01'HMAT,'71(2426K)'CHLVHMAT,90 QTY FROM dual UNION ALL 
SELECT 'BP127-01'HMAT,'BP127-10'CHLVHMAT,10 QTY FROM dual UNION ALL 
SELECT 'BP127-10'HMAT,'127'CHLVHMAT,10 QTY FROM dual UNION ALL
SELECT 'BP127-10'HMAT,'24-1'CHLVHMAT,30 QTY FROM dual UNION ALL
SELECT 'BP127-10'HMAT,'71(2426K)'CHLVHMAT,60 QTY FROM dual
)
SELECT t1.hmat,t2.chlvhmat,t2.qty FROM t1,t2 WHERE t1.hmat=t2.hmat;

HMAT, CHLVHMAT, QTY
BP127-01 71(2426K) 90
BP127-01 BP127-10  10
BP127-10 127       10
BP127-10 24-1      30
BP127-10 71(2426K) 60

--参考方法--
SQL> SELECT * FROM material;
 
HMAT                 CHLVHMAT                    QTY
-------------------- -------------------- ----------
BP127-01             71(2426K)                    90
BP127-01             BP127-10                     10
BP127-10             127                          10
BP127-10             24-1                         30
BP127-10             71(2426K)                    60
127                  24-1                         50
127                  71(2426K)                    50
 
7 rows selected
 
SQL> 
SQL> SELECT chlvhmat, SUM(rate)
  2    FROM (SELECT hmat, chlvhmat, qty, LEVEL, qty / power(10, 1 + LEVEL) rate
  3             FROM material
  4            WHERE connect_by_isleaf = 1
  5            START WITH hmat = 'BP127-01'
  6           CONNECT BY PRIOR chlvhmat = hmat)
  7   GROUP BY chlvhmat;
 
CHLVHMAT              SUM(RATE)
-------------------- ----------
71(2426K)                 0.965
24-1                      0.035
 
SQL> 

--参考方法--
学习了、
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:14:15
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/7354/
本文WWW.DOC100.NET DOC100.NET版权所有。