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. 再谈MV*(MVVM MVP MVC)模式的设计原理—封装与解耦

    精炼并增补于:界面之下:还原真实的MV*模式 图形界面的应用程序提供给用户可视化的操作界面,这个界面提供给数据和信息.用户输入行为(键盘,鼠标等)会执行一些应用逻辑,应用逻辑(application ...

  2. PopupWindow 点击外部区域无法关闭的问题

    在android4.0/5.0系统上,使用popupWindow时,点击内容外部区域无法关闭,但是在6.0及以上机子上又是正常的. 加下面这句代码: mPopupWindow.setBackgroun ...

  3. Emgu 学习(2) 视频文件播放

    播放AVI视频文件 static void Main(string[] args) { CvInvoke.NamedWindow("TestVideo", NamedWindowT ...

  4. MSF魔鬼训练营-3.2.2 操作系统辨识

    利用操作系统视频进行社会工程学攻击.例如在探测到目标用户所使用的网络设备.服务器设备厂家型号等信息后.可伪装成相关厂家的技术人员通过电话.邮件等方式与系统管理员取得联系得到信任.NMAP 示例: 使用 ...

  5. LeetCode-求最长回文子序列

    题目:给定一个字符串,求它的最长回文子串 /*求最长回文子串,以当前字符为中心,向两边同时拓展*/ string longestPalindrome(string s) { int len = s.l ...

  6. 设计模式:门面模式(Facade)

      前面介绍的适配器模式讲的是如何将一个接口转换成客户所需要的另一个接口,它的目的在于 解决接口的不兼容性问题.现在这里有这样一个模式,它的目的在于如何简化接口,它可以将多个类的复杂的一切隐藏在背后, ...

  7. Ubuntu19.04系统SSH连接CentOS7虚拟机

    一.为CentOS7配置静态IP 注意查看宿主机(Ubuntu19.04)所在局域网段,当前为172.18.25.108 修改当前系统下virtual box的网络设置 [控制]-->[设置]- ...

  8. Idea导入Eclipse的Web项目并部署到Tomcat

    ⒈启动Idea,选择导入项目 选择导入的项目路径后,选择项目类型后一路next即可. ⒉选择File->Project Structure打开项目配置窗口(ctrl + alt + shift ...

  9. SpringMVC请求参数总结

    前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentRes ...

  10. 树状数组+二维前缀和(A.The beautiful values of the palace)--The Preliminary Contest for ICPC Asia Nanjing 2019

    题意: 给你螺旋型的矩阵,告诉你那几个点有值,问你某一个矩阵区间的和是多少. 思路: 以后记住:二维前缀和sort+树状数组就行了!!!. #define IOS ios_base::sync_wit ...