如何利用現有的系統體現出全階BOM演算法?

2021-12-30 03:29:39 字數 1252 閱讀 1526

因為工作的因素,涉及到bom與工時比較多,就想著如何利用現有的系統體現出全階bom。以下圖為例:

在系統系統中的儲存方式如下:

p:父項;c:子件;sortseq:行號,qty:用量

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

對於工時的運算,也是同理的。希望給在製造一線的兄弟們,拋磚引玉吧!

如何在現有的 Linux 系統上新增新的磁碟

摘要 作為乙個系統管理員,我們會有這樣的一些需求 作為公升級伺服器容量的一部分,或者有時出現磁碟故障時更換磁碟,我們需要將新的硬碟配置到現有伺服器。在這篇文章中,我會向你逐步介紹新增新硬碟到現有 rhel centos 或者 debian ubuntu linux 系統的步驟。作為乙個系統管理員,我...

如何在現有的 Linux 系統上新增新的磁碟

fdisk是乙個在 linux 系統上用於顯示和管理硬碟和分割槽命令列工具。fdisk l這個命令會列出當前分割槽和配置。檢視 linux 分割槽詳情 新增了 20gb 容量的硬碟後,fdisk l的輸出像下面這樣。檢視新分割槽詳情 新新增的磁碟顯示為 dev xvdc。如果我們新增的是物理磁碟,基...

如何在現有的 Linux 系統上新增新的磁碟

摘要 作為乙個系統管理員,我們會有這樣的一些需求 作為公升級伺服器容量的一部分,或者有時出現磁碟故障時更換磁碟,我們需要將新的硬碟配置到現有伺服器。在這篇文章中,我會向你逐步介紹新增新硬碟到現有 rhel centos 或者 debian ubuntu linux 系統的步驟。作為乙個系統管理員,我...