从BOM中按照物料查找所有用到此物料的产成品

  此问题接上一个日志,根据BOM资料,按照采购件物料查找到所有用到此物料的产成品,这里又建立个存储过程和一张表,下面存储过程是通过游标取出所有产成品的采购件,并插入到这个实体表,因为数据量比较大,所以在数据库建立了作业(设置的在半夜执行),先删除实体表数据,并重新执行存储过程插入新数据。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
 
create procedure [dbo].[aaa_BOM]
as
-------------------------------------------------------------
/* create table
 abc(
ID int NOT NULL IDENTITY (1, 1),
成品代码 varchar(100),
层级 varchar(30),
物料代码 varchar(100),
物料名称 varchar(100),
物料属性 varchar(10),
数量 decimal(28,13))
*/
declare FG cursor for
select  fnumber  from  t_icitem where fnumber like '01.%'
--此句是取所有产成品代码(本单位产成品是01类)
open FG
declare @fnumber varchar(100)
fetch next from FG into @fnumber
while @@fetch_status=0
begin
 insert into abc(层级,物料代码,物料名称,物料属性,数量) exec aaa_BomExpand @fnumber
 update abc set 成品代码 =@fnumber where 成品代码 is null
  fetch next from FG into @fnumber
end
close FG
deallocate FG
select * from abc
--drop table #abc
 
下面就可以在查询分析中自己写个语句把数据查出来了(虽然不是实时数据,总比一个一个查询快多了)
SELECT 物料代码,物料名称,成品代码,数量 FROM  abc 
WHERE    abc.物料代码>='*ItemNo*'
AND  abc.物料代码<='#ItemNo#'

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值