实例介绍
【实例截图】
【核心代码】
select Row_Number() over(order by 母件编码,子件编码) as id ,szdc_BOM.*,
ap.apqty as '请购数',po.poqty as '采购在途',om.omqty as '委外在途',mo.moqty as '生产在制',omm.ommqty as '委外未领数',mom.momqty as '生产未领数' into #a from szdc_BOM left join (select cInvCode,sum(isnull(fQuantity,0)-isnull(iReceivedQTY,0)) as apqty from PU_AppVouch a inner join PU_AppVouchs b on a.ID=b.ID where isnull(iReceivedQTY,0)<isnull(fQuantity,0) and cCloser is null and cbcloser is null group by cInvCode ) ap on szdc_BOM.子件编码=ap.cInvCode left join (select cInvCode, sum(isnull(iQuantity,0)-isnull(ireceivedqty,0)-isnull(freceivedqty,0)) as poqty from po_pomain a inner join po_podetails b on a.POID=b.POID where isnull(ireceivedqty,0) isnull(freceivedqty,0)<isnull(iQuantity,0) and cCloser is null and cbCloser is null group by cInvCode ) po on szdc_BOM.子件编码=po.cInvCode left join (select InvCode,SUM(ISNULL(qty,0)-isnull(QualifiedInQty,0)) as moqty from mom_orderdetail where Status<>'4' and ISNULL(QualifiedInQty,0)<ISNULL(qty,0) group by InvCode) mo on szdc_BOM.子件编码=mo.InvCode left join (select b.InvCode,sum(isnull(b.Qty ,0)-ISNULL(IssQty,0)) as momqty from mom_orderdetail a left join mom_moallocate b on b.modid=a.modid where isnull(IssQty,0)<isnull(b.qty,0) and Status='3' group by b.invcode ) mom on szdc_BOM.子件编码=mom.InvCode left join (select cInvCode,sum(isnull(iQuantity,0)-ISNULL(freceivedqty,0)-ISNULL(iReceivedQTY,0)) as omqty from OM_MOMain a inner join OM_MODetails b on a.MOID=b.MOID where isnull(freceivedqty,0) ISNULL(iReceivedQTY,0)<isnull(iQuantity,0) and cCloser is null and cbCloser is null group by cInvCode) om on om.cInvCode=szdc_BOM.子件编码 left join (select b.cInvCode,sum(isnull(b.iQuantity,0)-ISNULL(iSendQTY,0)) as ommqty from OM_MODetails a left join om_momaterials b on b.MoDetailsID=a.MODetailsID inner join OM_MOMain c on a.MOID=c.MOID where isnull(iSendQTY,0)<isnull(b.iQuantity,0) and cbCloser is null and cCloser is null group by b.cInvCode) omm on szdc_BOM.子件编码=omm.cInvCode where 单据号=@v_ccode
select a.*,
(select sum(isnull(订单用量,0))
from #A b
where b.子件编码=a.子件编码 and b.id<=a.id) 'qty'
into #b from #a a
select (case when isnull(isnull(c.iquantity,0)-isnull(b.qty,0)-isnull(委外未领数,0)-isnull(生产未领数,0),0)>0 then 0 else isnull(isnull(c.iquantity,0)-isnull(b.qty,0)-isnull(委外未领数,0)-isnull(生产未领数,0),0) end) as '短缺数量',c.iquantity as '现存量',b.* into #c from #b b left join (select cInvCode,SUM(ISNULL(iquantity,0)) as iquantity from currentstock group by cinvcode ) c on b.子件编码=c.cinvcode
select 子件编码,子件名称,子件规格,单位,Min(短缺数量) as '短缺数量',请购数,采购在途,委外在途,生产在制,委外未领数,生产未领数,现存量 from #c where 短缺数量<0 group by 子件编码,子件名称,子件规格,单位,请购数,采购在途,委外在途,生产在制,委外未领数,生产未领数,现存量
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论