生活随笔
收集整理的這篇文章主要介紹了
全阶BOM算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為工作的因素,涉及到Bom與工時比較多,就想著如何利用現有的系統體現出全階BOM。以下圖為例:
在系統系統中的存儲方式如下:
P:父項;C:子件;SortSeq:行號,QTY:用量
[sql]?view plaincopy
if?OBJECT_ID('SBom')?is?not?null??begin??????drop?table?SBom??end???select?1?as?L,?P+'-'+RTRIM(CAST(SORTSEQ?AS?CHAR))?AS?LEV,P,SORTSEQ,C,QTY,qty?as?Sqty??into?SBom?from?bom?where?P='a'????DECLARE?@ID?AS?INT???SET?@ID=0??WHILE?@ID<1??????BEGIN??????????INSERT?INTO?SBOM(L,Lev,p,sortseq,c,qty,sqty)??????????select?t1.L+1?as?L,t1.lev+'-'+rtrim(cast(t2.sortseq?as?char))?as?Lev,??????????t1.p,t2.sortseq,t2.c,t2.qty,t1.Sqty*t2.qty?as?Sqty?from???????????(??????????select?L,LEV,P,SORTSEQ,C,QTY,Sqty?from?SBom?where?L?in(select?MAX(l)?from?SBom)??????????)t1??????????INNER?join?bom?t2?on?t1.c=t2.p??????????SELECT?@ID=CASE?WHEN?ISNULL(COUNT(1),0)>0?THEN?0?ELSE?1?END??FROM?SBOM?T1???????????INNER?JOIN?BOM?T2?ON?T1.C=T2.P??????????WHERE?T1.l?IN(SELECT?MAX(L)?FROM?SBOM)??????END??
這里Sbom是最終存儲的全階Bom,最終的效果如下:
這樣可以較為輕易地完成全階BOM
對于工時的運算,也是同理的。希望給在制造一線的兄弟們,拋磚引玉吧!
總結
以上是生活随笔為你收集整理的全阶BOM算法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。