1. 首页 > 科技

Oracle多阶BOM怎么查询出最底阶物料(取最父阶和最底阶的值)? bom如何分阶

Oracle多阶BOM怎么查询出最底阶物料(取最父阶和最底阶的值)?bom如何分阶

Oracle BOM层次查询

SELECT PARENT_ID, WLBMID, PROCURE_ATTR

FROM BOM_TABLE

START WITH PROCURE_ATTR = 'PR'

WHERE PRIOR WLBMID = PARENT_ID

再求助一SQL,谢谢,BOM父件查询最底层物料

这样的需求本身有些问题吧,如果成品下面本身就含半成品和材料,你只看最后一层,那么就会丢失一些材料信息吧

oracle 中 产品料号清单(BOM)查询语句怎么写?

可以用connect by 语句实现

SQL 两层BOM查询,求教

如果确定只有两层,可以用sql查出,思路:

1、整体分两部分,第一部分查出所有的主料,“是否有下一层”为0

2、两个bom表关联,用子物料名与主物料名关联,查出所有包含子物料的主物料名

3、第一部分查出来的数据与第二部分关联,用物料名称关联,取第二部分主物料名为null,条件限制之后,就能取出所有真正的没有子物料的主物料

4、用3的结果与2的结果union all,取得所有要的结果。

查询之前,先要给bom表做一个主键id字段,要不然还得做联合主键,更麻烦了。

sql语句如下:

select c.* from bom c, (select b.id,b.主物料,b.子物料,b.数量 from bom a,bom b

where a.主物料=b.子物料) d

where c.id=d.id and d.id is null and c.是否下一层=0

union all

select f.* from (select d.id,d.主物料,d.子物料,d.数量 from bom e,bom d where e.主物料=d.子物料) f

真正做的时候,可以将第二部的关联,做成一个临时表,这样就不用写两次sql语句了。