关于connect by查询语句中查询部分的累计问题
在计算多级BOM的时候,我们可能需要累计物料的损耗,所以要把子节点物料的损耗乘上父节点物料的损耗。
比如:
BOM level 损耗
FG 1 0.01
|-M1 2 0.02
|-M2 2 0.015
|-M2-1 3 0.01
|-M2-1.1 4 0.03
M2的损耗是 0.01×0.015,
M2-1的损耗是 0.01×0.015×0.01
M2-1.1的损耗是 0.01×0.015×0.01×0.03
假设SQL如下,如何在SQL中实现上面的损耗累计呢?
比如:
BOM level 损耗
FG 1 0.01
|-M1 2 0.02
|-M2 2 0.015
|-M2-1 3 0.01
|-M2-1.1 4 0.03
M2的损耗是 0.01×0.015,
M2-1的损耗是 0.01×0.015×0.01
M2-1.1的损耗是 0.01×0.015×0.01×0.03
假设SQL如下,如何在SQL中实现上面的损耗累计呢?
select material_code, level ,wast
from bom
start with parent_id = 1
connect by nocycle prior child_id = parent_id;
...全文
相关推荐
Oracle查询语句大全-精华版
Oracle查询语句大全,这个主要适合新人或者转数据库的人做字典型查询
Oracle递归查询start with connect by prior的用法
主要给大家介绍了关于Oracle递归查询start with connect by prior、的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
ORA-01436 与 层次查询CONNECT BY
一、 ORA-01436报错 开发遇到一个报错 ORA-01436: CONNECT BY loop in user data (ORA-01436: 用户数据中的 CONNECT BY 循环)。 1. 报错原因 根据网上的资料,产生这个错误的原因是数据形成了循环。例如下面这个语句: SELECT r1.region_id,parent_id FROM cnl_region r1 WHERE r1.region_id =1 START WITH r1.region_id = 1 CONNECT BY PRIOR r1.region_id = r1.parent_id; 如果数据在region
Oracle start with.connect by prior子句实现递归查询
Oracle start with.connect by prior子句实现递归查询
oracle connect by level 应用
NULL 博文链接:https://freejvm.iteye.com/blog/550858


