Oracle多阶BOM怎么查询出最底阶物料(取最父阶和最底阶的值)? bom如何分阶
更新时间:2021-10-29 11:07:59 • 作者:FANNIE •阅读 4673
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语句了。