此问题接上一个日志,根据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
close FG
deallocate FG
select * from abc
--drop table #abc
下面就可以在查询分析中自己写个语句把数据查出来了(虽然不是实时数据,总比一个一个查询快多了)
SELECT 物料代码,物料名称,成品代码,数量 FROM abc
WHERE abc.物料代码>='*ItemNo*'
AND abc.物料代码<='#ItemNo#'
此问题接上一个日志,根据BOM资料,按照采购件物料查找到所有用到此物料的产成品,这里又建立个存储过程和一张表,下面存储过程是通过游标取出所有产成品的采购件,并插入到这个实体表,因为数据量比较大,所以在数据库建立了作业(设置的在半夜执行),先删除实体表数据,并重新执行存储过程插入新数据。
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
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))
*/
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
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
begin
insert into abc(层级,物料代码,物料名称,物料属性,数量) exec aaa_BomExpand @fnumber
close FG
deallocate FG
deallocate FG
select * from abc
--drop table #abc
--drop table #abc
下面就可以在查询分析中自己写个语句把数据查出来了(虽然不是实时数据,总比一个一个查询快多了)
SELECT 物料代码,物料名称,成品代码,数量 FROM abc
WHERE abc.物料代码>='*ItemNo*'
AND abc.物料代码<='#ItemNo#'
WHERE abc.物料代码>='*ItemNo*'
AND abc.物料代码<='#ItemNo#'