求一简单树形结构的运算结果:
有表结构如下:
parentid,component,qty,batchqty
A B 100 1000
A C 1000 1000
B D 5 1000
B E 35 1000
C F 2000 2000
C H 1000 2000
需要计算出A、B、C、D、E、F、G、H各的数量。
结果为:A 1000
B 100
C 1000
D 0.5
E 3.5
F 1000
H 500
有表结构如下:
parentid,component,qty,batchqty
A B 100 1000
A C 1000 1000
B D 5 1000
B E 35 1000
C F 2000 2000
C H 1000 2000
需要计算出A、B、C、D、E、F、G、H各的数量。
结果为:A 1000
B 100
C 1000
D 0.5
E 3.5
F 1000
H 500
解决方案 »
- 请教关于BLOB字段效率问题
- 请教SQL
- oracle能监控EXP操作吗?
- 该怎么学习Oracle数据库
- 高分!寻找oracle8安装文件
- Warning:Function created with compilation errors
- 除了在tnsnames里还有那个文件可以看配置过的数据源?
- 在调用JAVA存储过程时出现如下错误:ORA-29532: Java 调用被未捕获的 Java 例外终止
- 还是:怎样才能把条件传到oracle存贮过程中去?有详细点的例子最好,谢谢!!
- 怎么下这样的sql,select sum(qty) from table1 where name='lile' group by name 当没有lile这条纪录时自动返回 sum(qty) =0 ,
- 奇怪的问题,烦请帮忙解决-着急啊
- 区难的重新组合字段问题,我想了好久都解决不了,请高手们指点,在线等,100分相赠!!!
ParentId VARCHAR2(10),
component VARCHAR2(10),
qty NUMBER,
batchQty NUMBER);INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('', 'A', 1000, 1000);
INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('A', 'B', 100, 1000);
INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('A', 'C', 1000, 1000);
INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('B', 'D', 5, 1000);
INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('B', 'E', 35, 1000);
INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('C', 'F', 2000, 2000);
INSERT INTO tmpTree(ParentId, component, qty, batchQty) VALUES('C', 'H', 1000, 2000);SELECT component, qty, sys_connect_by_path(component, '\') path
FROM tmpTree
START WITH component = 'A'
CONNECT BY PRIOR component = parentId
ORDER BY component
非常谢谢你的帮助,我刚刚开始接触ORACLE ,还不怎么熟悉。
在上面例子中, batchqty 是个很重要的字段,为什么你的语句中没有用到,还是我没看出来。
C F 2000 2000
C H 1000 2000
其实是C,F,H之间的比例关系2000*C等价于,相当于2000*F+1000*Hsys_connect_by_path(component, '\') path该如何理解。