对于制造多品种产品的企业,产品与零部件的关系不再是简单的一对多而是多对多关系。由于大量通用件在不同产品间的相互借用,在树状结构中表现为不同的结点可以有相同的子树;即使在同种产品内部,由于一些标准件的重用,同样使零部件关系呈现出复杂的交织。
在SQL SERVER 2000下测试通过BOM遍历算法,更深入具体的可以继续深入:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Bom]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Bom]
GO
CREATE TABLE [dbo].[Bom] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Parentid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Childid] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Usage] [float] NOT NULL ,
[Price] [money] NOT NULL ,
[StartDate] [smalldatetime] NOT NULL ,
[EndDate] [smalldatetime] NOT NULL
) ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[QueryBom]
(
@Itemid varchar(50),--根物料编码
@num float --物料用量
)
AS
create table [work]--创建临时表显示物料层次
(
Lvl int,--层次