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 ...
随机推荐
- 【linux杂谈】查看centOS系统的版本号和内核号
因为种种原因,我们通常需要查看centOS系统的版本号和内核号. 这里以centOS 6为切入点,展示了几种查看版本号和内核号的方法,同时也验证了其在centOS 7上的可行性. 一.centOS 6 ...
- python 爬虫 requests模块(response常用属性)
response常用属性 content获取的response对象中的二进制(byte)类型的页面数据response.content 返回响应状态码response.status_code 200 ...
- (转)SQLServer查询数据库各种历史记录
一. 数据库启动记录 1. 最近一次启动SQL Server的时间 select sqlserver_start_time from sys.dm_os_sys_info; --也可参考系统进程创建的 ...
- 索引及explain 详解
索引的分类: 普通索引:仅加速查询 唯一索引:加速查询 + 列值唯一(可以有null) 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个 组合索引:多列值组成一个索引,专门用于组合 ...
- Storm本地启动拓扑报错:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology/IRichSpout
问题描述: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/storm/topology ...
- 【图论好题】ABC #142 Task F Pure
题目大意 给定一个 $N$ 个点 $M$ 条边的有向图 $G$,无重边.自环.找出图 $G$ 的一个导出子图(induced subgraph) $G'$,且 $G'$ 中的每个点的入度和出度都是 1 ...
- # C++中对PI的引用
#include <iostream> #include <cmath> using namespace std; int main(){ printf("%.10l ...
- thinkphp6下无法获取header头中的Authorization(apache版)
今天遇到在thinkphp框架中获取不到header头里边的 Authorization ,后来在.htaccess里面加多一项解决,记录下: <IfModule mod_rewrite.c&g ...
- python基础之 线程_进程关系
上图
- Linux: cp 复制文件、文件夹到文件夹
参数 a 该选项通常在拷贝目录时使用.它保留链接.文件属性,并递归地拷贝目录,其作用等于dpR选项的组合. d 拷贝时保留链接. f 删除已经存在的目标文件而不提示. i 和f选项相反,在 ...