作者:
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;