数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
ERP系统中与BOM有关的常用方法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

一: BOM展开(按任一父结点展开到最底层)
以下写一个简单的,视具体要求稍做修改即可。
create table 表(levelid int,levelname char(2),parent int)
insert 表 select  1,        'AA'     ,    0
union all select  2 ,       'BB'    ,     1
union all select  3  ,      'CC'   ,      1
union all select  4   ,     'DD'  ,       2
union all select  5    ,    'EE' ,        3
union all select  6     ,   'FF',         5

create function bom (@name char(2))
returns @tb table (levelid int,levelname char(2),parent int)
as
begin
insert @tb select levelID,LevelName,parent from 表 where Levelname = @name
while @@rowcount > 0
 insert @tb select levelID,LevelName,parent from 表
  where parent in (select levelID from @tb)
  and levelID not in (select levelID from @tb)
return
end

select * from dbo.bom('bb')
levelid     levelname parent     
----------- --------- -----------
2           BB        1
4           DD        2

(所影响的行数为 2 行)

 

二: LLC(最低层码) 
1:物料主文件中至少有这两个字段
itemNo,llc
2:BOM中至少有这两个字段 (树状)
parentItem,itemNo
3:
Create  Procedure LLC
As
Update 物料主文件 set llc = 0  --先将LLC全部清为0
Declare @i tinyint
Set @i = 0
While @i <= 10  -- 假设BOM最多只有10层
Begin
 Update a Set a.llc = @i + 1    --子结点的LLC加1
  From 物料主文件 a
  Join bom b on a.itemNo = b.itemNo
  Join 物料主文件 c on c.itemNo = b.parentItem
  where c.llc = @i
 Set @i = @i + 1
End

/*********** Usage:   Exec LLC             *******/




相关文章

相关软件