BOM 结构如图

-- 1DH142-022 (DRIVE)

-- 100729421  (PCBA)

-- 100764148  (HDA)

-- 100687050 (VCM)

-- 100701274 (COVER)

-- 100701275 (HSA)

-- 100787293

-- 100709989 (VCM)

-- 100743069 (COVER)

-- 100766409 (HSA)

1. ORACLE 递归查询根节点下所有子节点清单

select parent_assembly, child_component, site_name, level
From scpdata.scp_pbom
start with parent_assembly = '1DH142-022'
connect by prior child_component = parent_assembly;
 
2. ORACLE 从子节点开始向上递归遍历所有父节点
select parent_assembly, child_component, site_name, level
From scpdata.scp_pbom
start with child_component = ''
connect by prior parent_assembly = child_component
and prior site_name = site_name;

3. 查询当前节点的叔叔伯父节点(兄弟父节点)

with bom as
(select parent_assembly,
child_component,
site_name,
prior child_component prev_child,
level le
from scpdata.scp_pbom
start with parent_assembly = '1DH142-022'
connect by prior child_component = parent_assembly)
select distinct b.*
From bom a
left join bom b
on a.child_component = ''
where b.le = (a.le - 1)
and b.child_component not in (a.parent_assembly);

4. 查询族兄

with bom as
(select parent_assembly,
child_component,
site_name,
prior child_component prev_child,
level le
from scpdata.scp_pbom
start with parent_assembly = '1DH142-022'
connect by prior child_component = parent_assembly)
select distinct b.*
From bom a
left join bom b
on a.child_component = ''
where b.le = a.le
and b.child_component <> a.child_component;

5. 格式化层级

select lpad(' ', level*2, ' ') || child_component, site_name, level
From scpdata.scp_pbom
start with parent_assembly = '1DH142-022'
connect by prior child_component = parent_assembly;

6. connect_by_root 查找根节点

select connect_by_root parent_assembly ROOT, parent_assembly, site_name, level
From scpdata.scp_pbom
start with parent_assembly = '1DH142-022'
connect by prior child_component = parent_assembly;

7. connect_by_isleaf标注是否叶子节点

select connect_by_root parent_assembly ROOT, parent_assembly,  child_component, site_name, level, connect_by_isleaf
From scpdata.scp_pbom
start with parent_assembly = '1DH142-022'
connect by nocycle prior child_component = parent_assembly;

 

ORACLE获取BOM清单的更多相关文章

  1. 不显示BOM清单的版本

    应用 Oracle Bill Of   Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...

  2. Oracle 获取当前日期及日期格式

    http://blog.sina.com.cn/s/blog_6168ee920100l2ye.html Oracle 获取当前日期及日期格式 获取系统日期:  SYSDATE()   格式化日期:  ...

  3. MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

    MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...

  4. oracle获取字符串长度函数length()和hengthb()

    原文:oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算s ...

  5. Oracle获取系统时间及格式化

    Oracle 获取当前日期及日期格式 获取系统日期:  SYSDATE()   格式化日期:     TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)           ...

  6. Oracle EBS BOM模块常用表结构

    表名: bom.bom_bill_of_materials  说明: BOM清单父项目  BILL_SEQUENCE_ID NUMBER 清单序号(关键字)ASSEMBLY_ITEM_ID NUMBE ...

  7. Oracle获取当前年、月、日的方法

    Oracle获取当前年.月.日的方法 Oracle 获取当前年.月.日 1.//oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的 ...

  8. Oracle 获取本周、本月、本季、本年的第一天和最后一天

    Oracle 获取本周.本月.本季.本年的第一天和最后一天 --本周 select trunc(sysdate, 'd') + 1 from dual; select trunc(sysdate, ' ...

  9. MySQL,SQLSERVER,ORACLE获取数据库表名及字段名

    1.MySQL 获取表名: 用“show tables”命令.在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来.其中“db”是指你的数据库的名称,比如说Tabl ...

随机推荐

  1. elastic 查询案例Query与Filter + CRUD简单理解 + dynamic mapping + keyword

    1.增 PUT mytest01/external/ { "name": "xiaowei" } curl -XPUT '192.168.1.49:9200/m ...

  2. oracle 插入数据之坑--------oracle字符类型varchar2一个中文占多少字节

    如果你误认为是两个字节,那就大错特错了 Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定 查看oracle server端字符集 select userenv('langu ...

  3. javaScript的Array方法

    仅个人总结 声明方法: var arr = new Array(); var arr = new Array(1,2,3,4,5); var arr = new array(size);//当为一个参 ...

  4. 计算机和python

    计算机基础知识 CPU 人类的大脑 运算和处理问题 内存 临时存储数据 断电就消失了 硬盘 永久 存储数据 操作系统是一个(特殊)的程序,调度硬件和软件之间的数据交互 python的应用和历史 IT, ...

  5. windows 安装 python 踩坑记录

    官方不建议使用 64 bit python,容易出各种问题 Unable to find vcvarsall.bat 凡是安装与操作系统底层相关的 python 扩展都会遇到这个问题,如 PIL,Pi ...

  6. Python接口开发

    一.flask flask是一个python编写的轻量级框架,可以使用它实现一个网站.web服务. 用flask开发接口的流程为: 1.定义一个server server=flask.Flask(__ ...

  7. Codeforces 1178C. Tiles

    传送门 考虑一块块填,首先 $(1,1)$ 有 $4$ 种方案 然后根据 $(1,1)$ 的右边颜色,$(1,2)$ 有两种方案,$(1,3)$ 根据 $(1,2)$ 也有两种方案... 考虑 $(2 ...

  8. 不基于比较的排序算法:Counting-sort和Radix-sort

  9. H5的video标签在网页上播放MP4视频时只有声音没有画面

    最近做一个项目时,发现mp4文件播放时没有图像,只有声音,代码检查了N次,都没有问题,就算是直接使用网上的实例代码,也只能播放实例视频,mp4文件绝对路径,相对路径也都试了,还是不能播放我的mp4. ...

  10. 小P的架构生活(上)

    背景:这年小P已经参加工作4年了,在前同事Z的极力劝说下,小P加入了Z新开的公司Y,公司一共有三个人:老板Z.程序员小P.前台W.项目名为XX交易系统 小P加班加点,终于在两个月后把系统开发完成,版本 ...