ORACLE获取BOM清单
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;

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清单的更多相关文章
- 不显示BOM清单的版本
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...
- Oracle 获取当前日期及日期格式
http://blog.sina.com.cn/s/blog_6168ee920100l2ye.html Oracle 获取当前日期及日期格式 获取系统日期: SYSDATE() 格式化日期: ...
- MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...
- oracle获取字符串长度函数length()和hengthb()
原文:oracle获取字符串长度函数length()和hengthb() lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算s ...
- Oracle获取系统时间及格式化
Oracle 获取当前日期及日期格式 获取系统日期: SYSDATE() 格式化日期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS) ...
- Oracle EBS BOM模块常用表结构
表名: bom.bom_bill_of_materials 说明: BOM清单父项目 BILL_SEQUENCE_ID NUMBER 清单序号(关键字)ASSEMBLY_ITEM_ID NUMBE ...
- Oracle获取当前年、月、日的方法
Oracle获取当前年.月.日的方法 Oracle 获取当前年.月.日 1.//oracle中extract()函数从oracle 9i中引入,用于从一个date或者interval类型中截取到特定的 ...
- Oracle 获取本周、本月、本季、本年的第一天和最后一天
Oracle 获取本周.本月.本季.本年的第一天和最后一天 --本周 select trunc(sysdate, 'd') + 1 from dual; select trunc(sysdate, ' ...
- MySQL,SQLSERVER,ORACLE获取数据库表名及字段名
1.MySQL 获取表名: 用“show tables”命令.在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来.其中“db”是指你的数据库的名称,比如说Tabl ...
随机推荐
- mysql 速度优化
1.添加索引 ALTER TABLE `cw_base_house` ADD INDEX idx_house ( `villageCode`, `buildingNo`, `unitNo`, `hou ...
- Python assert 关键字
Python assert(断言)用于判断一个表达式,在表达式条件为 False 的时候触发异常. 断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况. 语法格式: ...
- Docker 运行的 应用程序无法连接Oracle数据库的解决办法
1. 最近公司使用docker化部署运行 app 发现一个部门的 多数据源取数的功能连接不上 oracle数据库 报错提示为: 2. 公司平台部同事给出两个解决方案: https://blog.cs ...
- jQuery 实现图片放大两种方式
jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...
- yield浅析-Python3
yield 浅析 先来一段代码: def fun1(): for i in range(5): yield i print("继续调用继续执行") gen1 = fun1() pr ...
- Linux-1.4文件操作命令(grep,cat,tail,head,less,find,chmod,tail,less)
Linux基础命令(grep,cat,tail,head,less,find,chmod,tail,less) grep(常用) grep 指定“文件”搜索文件内容 grep hello 1.txt ...
- Buy a Ticket CodeForces - 938D (dijkstra)
大意: n节点无向图, 点$i$到点$j$的花费为$2dis(i,j)+a[j]$, 对于每个点, 求最少花费. 每条边权翻倍, 源点S向所有点$i$连边, 权为$a[i]$, 答案就为$S$到每个点 ...
- TOPK 问题
TOPK 问题 描述 如从海量数字中寻找最大的 k 个,这类问题我们称为 TOPK 问题,通常使用堆来解决: 求前 k 大,用最小堆 求前 k 小,用最大堆 例子 现有列表 [1, 2, 0, 3, ...
- 面试常考的js题目(一)
1.找出dom文档中某个元素下面的所有文字(面试写的一塌糊涂,回来重写的) 1.返回回数组形式的 function getText(ele) { if (ele.nodeType === 3) { r ...
- SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum avg() 函数 定义和用法 AVG 函数返回数值列的平均值.NULL ...