CREATE TABLE t_IC_Item(FItemID int,FNumber varchar(200),FName varchar(200),FModel varchar(200),FUnitID int,FErpClsID int)

INSERT t_IC_Item

SELECT 1,'CP.001','产品1' ,'产品规格1' ,1,2 UNION

SELECT 2,'BC.001','半成品1' ,'半成品规格1' ,1,2 UNION

SELECT 3,'BC.002','半成品2' ,'半成品规格2' ,1,2 UNION

SELECT 4,'BC.003','半成品3' ,'半成品规格3' ,1,3 UNION

SELECT 5,'BC.004','半成品4' ,'半成品规格4' ,1,2 UNION

SELECT 6,'ZC.001','主材料1' ,'主材料规格1' ,1,1 UNION

SELECT 7,'ZC.002','主材料2' ,'主材料规格2' ,1,1 UNION

SELECT 8,'ZC.003','主材料3' ,'主材料规格3' ,1,1 UNION

SELECT 9,'ZC.004','主材料4' ,'主材料规格4' ,1,1 UNION

SELECT 10,'ZC.005','主材料5' ,'主材料规格5' ,1,1 UNION

SELECT 11,'ZC.006','主材料6' ,'主材料规格6' ,1,1 UNION

SELECT 12,'ZC.007','主材料7' ,'主材料规格7' ,1,1 UNION

SELECT 13,'ZC.008','主材料8' ,'主材料规格8' ,1,1 UNION

SELECT 14,'ZC.009','主材料9' ,'主材料规格9' ,1,1 UNION

SELECT 15,'ZC.010','主材料10','主材料规格10',1,1 UNION

SELECT 16,'ZC.011','主材料11','主材料规格11',1,1 UNION

SELECT 17,'ZC.012','主材料12','主材料规格12',1,1

CREATE TABLE t_Unit(FID int,FName varchar(20))

INSERT t_Unit SELECT 1,'个'

CREATE TABLE t_BOM(FID int,FBomNo varchar(200),FItemID int,FQty decimal(28,10),FUnitID int)

INSERT t_BOM

SELECT 1,'BOM01',1,1,1 UNION

SELECT 2,'BOM02',2,1,1 UNION

SELECT 3,'BOM03',3,1,1 UNION

SELECT 4,'BOM04',4,1,1 UNION

SELECT 5,'BOM05',5,1,1

CREATE TABLE t_BOMChild(FID int,FEntryID int,FItemID int,FQty decimal(28,10),FUnitID int)

INSERT t_BOMChild

SELECT 1,1, 2,1,1 UNION

SELECT 1,2, 3,1,1 UNION

SELECT 1,3,15,1,1 UNION

SELECT 1,4,17,1,1 UNION

SELECT 2,1, 6,1,1 UNION

SELECT 2,2, 7,1,1 UNION

SELECT 3,1, 8,1,1 UNION

SELECT 3,2, 9,1,1 UNION

SELECT 3,3, 7,1,1 UNION

SELECT 3,4, 4,1,1 UNION

SELECT 4,1,10,1,1 UNION

SELECT 4,2,11,1,1 UNION

SELECT 4,3, 5,1,1 /*UNION

SELECT 5,1,12,1,1 UNION

SELECT 5,2,13,1,1 UNION

SELECT 5,3,14,1,1 UNION

SELECT 5,4,16,1,1 UNION

SELECT 5,5, 7,1,1*/

GO

create procedure sp_test

as

begin

declare @i int

declare @t table(Level int,Code varchar(40),FItemID int,FNumber varchar(20),FName varchar(20),

FModel varchar(20),FErpClsID int,FQty int,FName1 varchar(20),Status varchar(20))

declare @t1 table(id int identity(1,1),Level varchar(10),Code varchar(40),FItemID int,FNumber varchar(20),FName varchar(20),

FModel varchar(20),FErpClsID varchar(20),FQty int,FName1 varchar(20),Status varchar(20))

set @i=0

insert into @t

select

distinct @i,right('000'+rtrim(a.FItemID),4),a.FItemID,a.FNumber,a.FName,a.FModel,a.FErpClsID,b.FQty,c.FName,'正常'

from

t_IC_Item a,t_BOM b,t_Unit c

where

a.FUnitID=b.FUnitID and b.FUnitID=c.FID

and

not exists(select 1 from t_BOM d,t_BOMChild e where d.FID=e.FID and e.FItemID=a.FItemID)

and

exists(select 1 from t_BOM m,t_BOMChild n where m.FID=n.FID and M.FID=a.FItemID)

while @@rowcount>0

begin

set @i=@i+1

insert into @t

select

@i,e.Code+right('000'+rtrim(d.FEntryID),4),

a.FItemID,a.FNumber,a.FName,a.FModel,a.FErpClsID,b.FQty*d.FQty*e.FQty,c.FName,

case when a.FItemID in(select m.FID from t_BOM m,t_BOMChild n where m.FID=n.FID) then '正常'

when a.FItemID in(select FID from t_BOM) then 'BOM未建'

else ''

end

from

t_IC_Item a,t_BOM b,t_Unit c,t_BOMChild d,@t e

where

a.FUnitID=b.FUnitID

and b.FUnitID=c.FID

and a.FItemID=d.FItemID

and b.FID=d.FID

and d.FID=e.FItemID

and e.level=@i-1

end

insert into @t1(Level,Code ,FItemID ,FNumber,FName,FModel,FErpClsID,FQty,FName1,Status)

select

t.*

from

(select top 100 percent

REPLICATE('.',Level)+rtrim(Level) as level,

Code,FItemID,FNumber,FName,

FModel,(case FErpClsID when 1 then '外购' when 2 then '自制'when 3 then '委外加工' else '' end) as FErpClsID,

FQty,FName1,Status

from

@t

order by

code) t

select Id,Level ,FItemID,FName,FModel,FErpClsID,FQty,FName1,Status from @t1 order by code

end

go

exec sp_test

/*

Id Level FItemID FName FModel FErpClsID FQty FName1 Status

----------- ---------- ----------- -------------------- -------------------- -------------------- ----------- -------------------- --------------------

1 0 1 产品1 产品规格1 自制 1 个 正常

2 .1 2 半成品1 半成品规格1 自制 1 个 正常

3 ..2 6 主材料1 主材料规格1 外购 1 个

4 ..2 7 主材料2 主材料规格2 外购 1 个

5 .1 3 半成品2 半成品规格2 自制 1 个 正常

6 ..2 8 主材料3 主材料规格3 外购 1 个

7 ..2 9 主材料4 主材料规格4 外购 1 个

8 ..2 7 主材料2 主材料规格2 外购 1 个

9 ..2 4 半成品3 半成品规格3 委外加工 1 个 正常

10 ...3 10 主材料5 主材料规格5 外购 1 个

11 ...3 11 主材料6 主材料规格6 外购 1 个

12 ...3 5 半成品4 半成品规格4 自制 1 个 BOM未建

13 .1 15 主材料10 主材料规格10 外购 1 个

14 .1 17 主材料12 主材料规格12 外购 1 个

*/

go

DROP procedure sp_test

DROP TABLE t_IC_Item

DROP TABLE t_Unit

DROP TABLE t_BOM

DROP TABLE t_BOMChild

GO

多层bom展开_K3 BOM 多级展开SQL相关推荐

  1. oracle bom展开 sql,Oracle EBS-SQL (BOM-15):检查多层BOM(含common BOM).sql

    select       distinct b.lvl 层次, b.OPERATION_SEQ_NUM 工序, msi1.segment1 父件编码, msi1.description 父件描述, m ...

  2. 【SAP Abap】BOM多级展开函数 CS_BOM_EXPL_MAT_V2 使用详解

    SAP ABAP BOM多级展开函数 CS_BOM_EXPL_MAT_V2 使用详解 1.函数入参说明 2.函数出参说明 1.函数入参说明 CALL FUNCTION 'CS_BOM_EXPL_MAT ...

  3. BOM展开BAPI(标准BOM、销售BOM、WBS BOM)

    标准BOM 展开BAPI: BAPI:CS_BOM_EXPL_MAT_V2 表:MAST 物料和BOM关联 前台查看CS03看到下层:CS12能看到全部层组件 BAPI传参: 1.应用程序 2.有效日 ...

  4. Oracle EBS-SQL (BOM-19):主BOM与替代BOM互换.sql

    替代BOM与主BOM互相转换 BOM: 1-01-27-211       子件:1-01-27-416  ID:2202 BOM替代项:替代0001   子件: 1-01-26-204   ID:2 ...

  5. 订单BOM、销售BOM、标准BOM

    訂單BOM: 是實際生產時用的BOM, 在標準BOM和銷售BOM基礎上增減物料的BOM 銷售BOM: 是為特定客戶設定的BOM, 在主檔數據層次上的BOM, 在生產時是帶到訂單BOM中去的. 標準BO ...

  6. (MM)物料BOM与生产BOM对比表

    物料BOM与生产BOM对比表 *&---------------------------------------------------------------------* *& 包 ...

  7. 生产订单BOM、销售订单BOM、标准BOM

    生产订单BOM.销售订单BOM.标准BOM 生产订单BOM.销售订单BOM.标准BOM 生产订单BOM ,跑生产订单时,子组件体现作用 . 销售订单BOM ,跑MRP 时体现子组件的作用 . rcdf ...

  8. 生产BOM、销售BOM、标准BOM的区别

    订单BOM: 是生产订单所使用的BOM, 在标准BOM和销售 BOM基礎上增減物料的BOM 销售BOM: 是為特定客戶設定的BOM, 在主檔數據層次上的BOM, 在生產時是帶到訂單BOM中去的. 标准 ...

  9. 订单BOM与销售BOM的区别

    订单BOM与销售BOM的区别 訂單BOM: 是實際生產時用的BOM, 在標準BOM和銷售BOM基礎上增減物料的BOM 銷售BOM: 是為特定客戶設定的BOM, 在主檔數據層次上的BOM, 在生產時是帶 ...

最新文章

  1. vue2.0实现底部导航切换效果
  2. Python 3 利用 subprocess 实现管道( pipe )交互操作读/写通信
  3. 使用DOM操纵HTML文档几点粗浅认识
  4. 机器学习领域中的六大误区
  5. 从任务到可视化,如何理解LSTM网络中的神经元 By 机器之心2017年7月03日 14:29 对人类而言,转写是一件相对容易并且可解释的任务,所以它比较适合用来解释神经网络做了哪些事情,以及神经网
  6. Java 打飞机(小游戏)[版权非本人 本人制作收藏整理]
  7. 1.yum下载 mysql及授权
  8. DOM对象和jquery对象相互转换
  9. jxl freemark
  10. TP6+JWT开发APP接口
  11. Microchip PIC系列8位单片机入门教程(二)点亮LED灯
  12. 什么叫反向链接?什么是死链接?什么是错误链接?
  13. Java判断图片文件格式,不是根据文件后缀判断
  14. 微信小程序优选驾考驾照考试预约+后台管理系统SSM-JAVA【数据库设计、论文、源码、开题报告】
  15. 专访阿里巴巴元境王矛:打造研运一体化平台,去做开创性的事
  16. 记一次被虐的很惨的面试
  17. 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell
  18. 微金所获2015(行业)最具影响力品牌奖
  19. 使用机器学习预测大盘
  20. Vue3分页器(Pagination)

热门文章

  1. Kafka 性能调优实战:同等资源配置性能提升 20 几倍的秘诀
  2. 6000万条GitHub帖子告诉你:工作状态与表情符号强相关
  3. 不如安卓?iPhone 12 5G 速度上演“滑铁卢”
  4. 漫画:这份程序员自画像,是不是你的?
  5. 海思加鸿蒙的零距离思考,自主生态之路在何方
  6. 华为发布全新一代OceanStor存储Pacific系列,打造海量数据存储新标杆
  7. 百度否认退市;微信官方回应「个人影响度报告」;微软公布 C# 9.0 计划 | 极客头条...
  8. 疫情肆虐下,程序员用代码告诉你为什么千万不要出门!
  9. 阿里云张建锋:工业互联网不是工业自动化
  10. Python 之父从 Dropbox 退