用友U8按BOM计算销售订单物料需求SQL代码 第一稿
drop table #tmp1999
drop table #tmp2999
drop table #tmp3999
drop table #tmp4999
drop table #tmp5999
drop table #tmp6999
drop table #tmp7999
drop table #tmp8999
drop table #tmp9999
drop table #tmp1 create table #tmp1999
(
[autoid] [int] IDENTITY(1,1) NOT NULL,
[opcomponentid] [nvarchar](100) NULL,
[bomid] [nvarchar](100) NULL,
[sortseq] [nvarchar](20) NULL,
[componentid] [nvarchar](100) NULL,
[baseqtyn] [decimal](10, 4) NULL,
[baseQtyD] [decimal](10, 4) NULL ) delete #tmp1999 declare @id int
set @id=(select min(autoid) from SO_SODetails /*where cInvCode='1C00601009'*/ )
---声明一个变量,销售明细里面最小的ID号赋值给变量
while(@id)<=(select max(autoid) from SO_SODetails /*where cInvCode='1C00601009'*/)
---当@id<=销售订单明细表最大ID时,循环
begin
insert into #tmp1999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select iQuantity from SO_SODetails where autoid=@id )) as baseqitn,
baseQtyD from bom_opcomponent
----查询BOM子表并插入到#Tmp1999中
where BomId =(
select MAX( BomId) as bomid from bom_parent where ParentId = (
select partid from bas_part
where InvCode = (
select cinvcode from SO_SODetails
where AutoID=@id)))) set @id=@id+1
end ----根据#tmp1999创建一个数据结构相同的表 #tmp2999
select * into #tmp2999 from #tmp1999 where 1=0 /***
第二次循环,查找tmp#1999中的子件
***/
delete #tmp2999
set @id=(select min(autoid)from #tmp1999)
while @id<=(select max(autoid)from #tmp1999 )
begin
insert into #tmp2999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp1999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp2999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp1999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp3999 from #tmp1999 where 1=0
/***
第三次循环,查找tmp#2999中的子件
***/
delete #tmp3999
set @id=(select min(autoid)from #tmp2999)
while @id<=(select max(autoid)from #tmp2999 )
begin
insert into #tmp3999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp2999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp3999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp2999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp4999 from #tmp1999 where 1=0
/***
第四次循环,查找tmp#3999中的子件
***/
delete #tmp4999
set @id=(select min(autoid)from #tmp3999)
while @id<=(select max(autoid)from #tmp3999 )
begin
insert into #tmp4999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp3999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp4999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp3999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp5999 from #tmp1999 where 1=0
/***
第四次循环,查找tmp#4999中的子件
***/
delete #tmp5999
set @id=(select min(autoid)from #tmp4999)
while @id<=(select max(autoid)from #tmp4999 )
begin
insert into #tmp5999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp4999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp5999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp4999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp6999 from #tmp1999 where 1=0
/***
第六次循环,查找tmp#5999中的子件
***/
delete #tmp6999
set @id=(select min(autoid)from #tmp5999)
while @id<=(select max(autoid)from #tmp5999 )
begin
insert into #tmp6999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp5999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp5999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp5999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp7999 from #tmp1999 where 1=0
/***
第七次循环,查找tmp#6999中的子件
***/
delete #tmp7999
set @id=(select min(autoid)from #tmp6999)
while @id<=(select max(autoid)from #tmp6999 )
begin
insert into #tmp7999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp6999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp7999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp6999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp8999 from #tmp1999 where 1=0
/***
第八次循环,查找tmp#7999中的子件
***/
delete #tmp8999
set @id=(select min(autoid)from #tmp7999)
while @id<=(select max(autoid)from #tmp7999 )
begin
insert into #tmp8999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp7999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp7999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp7999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp9999 from #tmp1999 where 1=0
/***
第9次循环,查找tmp#8999中的子件
***/
delete #tmp9999
set @id=(select min(autoid)from #tmp8999)
while @id<=(select max(autoid)from #tmp8999 )
begin
insert into #tmp9999 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)(
select opcomponentid , bomid, sortseq , componentid,
(baseqtYn*(select baseqtyn from #tmp8999 where autoid=@id )) as baseqitn
, baseQtyD from bom_opcomponent
----查询BOM子表并插入到Tmp7999中
where BomId =(select MAX( BomId) as bomid from bom_parent
where ParentId =(select ComponentId from #tmp8999 where AutoId=@id ) ))
set @id=@id+1
end select * into #tmp1 from #tmp1999 where 1=0
set @id=(select count(autoid) from #tmp9999 )
if @id=0
begin
delete #tmp1
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp1999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp2999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp3999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp4999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp5999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp6999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp7999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp8999)
insert into #tmp1 ( opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD)
(select opcomponentid , bomid, sortseq , componentid, baseqtyn, baseQtyD from #tmp9999)
end /***
select * from #tmp1
where componentid='35547' select * from bas_part
where invcode='3020900005' partid='33857'
***/
用友U8按BOM计算销售订单物料需求SQL代码 第一稿的更多相关文章
- C4C销售订单行项目价格维护方法
需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域. 如下图所示: 下面是具体配置. Business Configuration里,点击Sales Ord ...
- 销售订单(SO)-API-创建销售订单
创建销售订单API主要注意几点: 初始化环境变量:fnd_global.apps_initialize(); mo_global.init('ONT'); mo_global.set_policy_c ...
- 订单BOM、销售BOM、标准BOM
订单BOM.销售BOM.标准BOM 訂單BOM: 是實際生產時用的BOM, 在標準BOM和銷售BOM基礎上增減物料的BOM銷售BOM: 是為特定客戶設定的BOM, 在主檔數據層次上的BOM, 在生 ...
- 订单BOM与销售BOM的区别
訂單BOM: 是實際生產時用的BOM, 在標準BOM和銷售BOM基礎上增減物料的BOM 銷售BOM: 是為特定客戶設定的BOM, 在主檔數據層次上的BOM, 在生產時是帶到訂單BOM中去的. 標準BO ...
- 主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了
随着月末来临,又到了汇报总结的时刻. (图片来自网络) 到了这个特殊时期,你的老板就一定想要查看企业整体的运转情况.销售业绩.客户实况分析.客户活跃度.Top10 sales. 产品情况.订单处理情况 ...
- 万物皆可集成系列:低代码释放用友U8+深度价值(2)—数据拓展应用
在上一篇内容我们介绍了如何利用低代码开发套件实现低代码应用与U8+系统的对接集成,本次给大家带来的是如何将用友U8+系统中的数据进行价值扩展和实际应用. 我们以生产物料齐套分析为例来说明如何利用低代码 ...
- [SAP ABAP开发技术总结]SD销售订单定价过程
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)
作者:秋时 杨昶 转载须说明出处 4.5 单据流转 4.5.1 单据流转的目的 单据流转主要为了实现业务关系的流转,并记录相互之间的关系.例如从销售订单生成销货单,两张单据之间有对应的关 ...
- 用友U8.70安装说明
用友U8.70安装说明 U8.70安装说明一.安装前注意事项:1. 在安装U870之前,我们推荐您确保当前计算机操作系统是“干净”的,即计算机在安装过操作系统和更新过必要的系统补丁后没有安 ...
随机推荐
- Scheme Implementations对比
MIT Scheme http://www.gnu.org/software/mit-scheme/ GNU Guile http://www.gnu.org/software/guile/ Rack ...
- TreeMap源码解析
1.TreeMap介绍 TreeMap是一个通过红黑树实现有序的key-value集合. TreeMap继承AbstractMap,也即实现了Map,它是一个Map集合 TreeMap实现了Navig ...
- 谈谈分布式事务之一:SOA需要怎样的事务控制方式
在一个基于SOA架构的分布式系统体系中,服务(Service)成为了基本的功能提供单元,无论与业务流程无关的基础功能,还是具体的业务逻辑, 均实现在相应的服务之中.服务对外提供统一的接口,服务之间采用 ...
- leetcode 逆转字符串 当年的第一题,今天再写一遍,物是人非
public class Solution { public String reverseWords(String s) { if(s==null||s.length()==0) return &qu ...
- tyvj P1519 博彩游戏(AC自动机+DP滚动数组)
P1519 博彩游戏 背景 Bob最近迷上了一个博彩游戏…… 描述 这个游戏的规则是这样的:每花一块钱可以得到一个随机数R,花上N块钱就可以得到一个随机序列:有M个序列,如果某个序列是产生的随机序列的 ...
- cloudstack安装篇3-SELinux配置、NTP时间同步、配置ClouStack软件库
一.SELinux配置 为了让CloudStack正常工作,我们必须将SELinux设置为permissive.需要在当前系统运行状态下和启动后都能够生效,进行以下配置. 在系统运行状态下的将SELi ...
- Storm系列(十五)架构分析之Executor-Spout
Spout实现mk-threads接口用于创建与Executor对应的消息循环主函数. defmulti mk-threads executor-selector Mk-threads函数的主消息循环 ...
- Tutorial: Getting Started with SignalR (C#) -摘自网络
Overview This tutorial introduces SignalR development by showing how to build a simple browser-based ...
- windows下利用dll生成lib
原来工程编译的一些dll库,这次项目需要静态库,偷懒想直接转化.看到网上一些教程,使用VC工具和建立lib项目来实现.有点麻烦.还有一种方法,仅仅利用工具和几条命令转化.来试试看.文章参考harrie ...
- NSAutoreleasePool' is unavailable: not avail
NSAutoreleasePool' is unavailable: not available in automatic reference counting mode 这我就纠结了,对着书敲都出问 ...