Re: [SQL ] Oracle connect by 语法,数量累乘

楼主: rongkuo (small kuo)   2015-07-29 21:30:18
※ 引述《bohei (run and fall)》之铭言:
: 大家好
: 目前正在做一个BOM的展开
: 使用的是connecy by prior 语法 目前唯独QPA无法算出
: 想用累乘的概念把用量算出来 下面是简单的例子
: 主料号 子料号 用量
: ====================
: A B 2
: B C 3
: SELECT 子料号,用量 FROM table
: WHERE connect_by_isleaf=1
: START WITH 主料号 = 'A'
: CONNECT BY PRIOR 子料号 = 主料号
: 希望最后出来的结果是
: 子料号 用量
: ============
: C 6
: 不知道有没有办法做到? 先谢谢大家!
试看看以下SQL是否符合需求
CREATE TABLE A
(
C1 VARCHAR2(10),
C2 VARCHAR2(10),
C3 NUMBER
);
INSERT INTO A (C1, C2, C3)
VALUES ('A', 'B', 2);
INSERT INTO A (C1, C2, C3)
VALUES ('B', 'C', 3);
COMMIT;
SELECT C2,PROD
FROM (
SELECT C1
, C2
, C3
, LEVEL N
, COUNT(*) OVER() RN
, EXP(SUM(LN(C3))OVER(ORDER BY LEVEL)) PROD
FROM A
START WITH C1 = 'A'
CONNECT BY PRIOR C2 = C1
)
WHERE N=RN;
作者: bohei (run and fall)   2015-07-30 09:32:00
你好,抱歉之前忘记说到可能不只有一个分支,例如A下有BC,C下有DE 这样~

Links booklink

Contact Us: admin [ a t ] ucptt.com