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代码 第一稿的更多相关文章

  1. C4C销售订单行项目价格维护方法

    需求很简单,能够创建销售订单,在行项目里添加产品,带出价格来,同时把总价显示在销售订单抬头区域. 如下图所示: 下面是具体配置. Business Configuration里,点击Sales Ord ...

  2. 销售订单(SO)-API-创建销售订单

    创建销售订单API主要注意几点: 初始化环境变量:fnd_global.apps_initialize(); mo_global.init('ONT'); mo_global.set_policy_c ...

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

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

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

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

  5. 主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了

    随着月末来临,又到了汇报总结的时刻. (图片来自网络) 到了这个特殊时期,你的老板就一定想要查看企业整体的运转情况.销售业绩.客户实况分析.客户活跃度.Top10 sales. 产品情况.订单处理情况 ...

  6. 万物皆可集成系列:低代码释放用友U8+深度价值(2)—数据拓展应用

    在上一篇内容我们介绍了如何利用低代码开发套件实现低代码应用与U8+系统的对接集成,本次给大家带来的是如何将用友U8+系统中的数据进行价值扩展和实际应用. 我们以生产物料齐套分析为例来说明如何利用低代码 ...

  7. [SAP ABAP开发技术总结]SD销售订单定价过程

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. Netsharp快速入门(之13) 销售管理(单据流转 销售订单生成发货单)

    作者:秋时 杨昶   转载须说明出处 4.5     单据流转 4.5.1  单据流转的目的 单据流转主要为了实现业务关系的流转,并记录相互之间的关系.例如从销售订单生成销货单,两张单据之间有对应的关 ...

  9. 用友U8.70安装说明

    用友U8.70安装说明 U8.70安装说明一.安装前注意事项:1.       在安装U870之前,我们推荐您确保当前计算机操作系统是“干净”的,即计算机在安装过操作系统和更新过必要的系统补丁后没有安 ...

随机推荐

  1. 彻底解决:请求被中止: 未能创建 SSL/TLS 安全通道

    最近有个项目要调用客户用java写的带https的webservice,对方提供了证书文件 test.pfx,我这里调用方式如下: //webservice代理类 SvcService svc = n ...

  2. 谈谈分布式事务之三: System.Transactions事务详解[下篇]

    在前面一篇给出的Transaction的定义中,信息的读者应该看到了一个叫做DepedentClone的方法.该方法对用于创建基于现有Transaction对 象的“依赖事务(DependentTra ...

  3. Unity3D Mathf函数

    Mathf.Abs绝对值 计算并返回指定参数 f 绝对值. Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f ...

  4. [codevs4247]奇特的生物

    题目描述 Description 科学家们最近发现了一种奇怪的生物,它们每天长大一岁,刚出生的宝宝为1岁,且它们的年龄没有上限.已知年龄为1岁,2岁,3岁,……,k岁的个体具有生育能力,当年龄为i的具 ...

  5. S3C2440触摸屏驱动实例开发讲解

    出处:http://www.embeddedlinux.org.cn/html/yingjianqudong/ 一.开发环境 主  机:VMWare--Fedora 9 开发板:Mini2440--6 ...

  6. Java和C++的区别

    这是一个Java语言和C++语言之间的比较. 目录 [隐藏]  1 设计目标 2 语言特性 2.1 语法 2.2 语义 2.3 资源管理 2.4 库 2.5 运行时 2.6 模板 vs. 泛型 2.7 ...

  7. 如何通过Visual Studio发布Azure应用程序

    发布 Azure 云服务 使用 Azure Tools for Visual Studio,可以直接从 Visual Studio 将云服务发布到 Azure. 在发布 Azure 云服务之前,必须已 ...

  8. HW3.6

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  9. HDOJ-ACM1061(JAVA) Rightmost Digit

    题意:求n的n次方的个位数(1<=N<=1,000,000,000) 第一个最愚蠢的办法就是暴力破解,没什么意义,当然,还是实现来玩玩. 以下是JAVA暴力破解: import java. ...

  10. 关于sqlite数据库

    firedac数据引擎可以支持sqlite数据库,这种方式是纯绿色的,发布时不需要带上官方的sqlite.dll动态链接库文件. 当然调用该动态链接库的API方法也是可以操作sqlite数据库的,这样 ...