A. EXCEL中一个产品BOM表,下面有几级,其中各级可能都是原材料,如何快速查找出最底层的原材料
个人建议使用Excel的分组功能,然后多一列,在该列维护物料是否有下级的信息,这样最后就可以筛选出来底层物料了。
B. 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语句了。