※ 引述《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;