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語句了。