|
原帖由 newkid 于 2009-11-6 23:36 发表 ![]()
这样呢?
WITH t AS (
SELECT SYS_CONNECT_BY_PATH(a.part_no,'\')||'\' as path
,component_part as part
,LEVEL lvl
,SYS_CONNECT_BY_PATH(a.qty_per_assembly,'\')||'\' as qty_path
FROM manuf_structure_tab a JOIN inventory_part_tab b
ON a.part_no = b.part_no
START WITH b.sk_part_category_db = 'Product'
CONNECT BY a.part_no = PRIOR a.component_part
)
SELECT root_part,part,SUM(qty) AS qty
FROM (
SELECT SUBSTR(path,2,INSTR(path,'\',1,2)-2) as ROOT_PART
,PART
,(SELECT EXP(SUM(LN(SUBSTR(qty_path,INSTR(qty_path,'\',1,rn)+1,INSTR(qty_path,'\',1,rn+1)-INSTR(qty_path,'\',1,rn)-1))))
FROM (SELECT ROWNUM RN FROM DUAL CONNECT BY ROWNUM
太感谢了!
这个速度快多了,目前测试了几个PRODUCT,没有问题.
现在还要对再多确认其它数据有没有问题. |
|