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