[易飞]五、邮件预警-有库存未出货明细表(含客户名称 订单数量>100 交期<90天)-管理...

存储过程

set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /* *用途:订单已完工入库未出货提醒 *作者:龚德辉 2010-09-19 */ ALTER Procedure [dbo].[UP_QtyForDeliverForMgr] (@0 as nvarchar(15)=null) as Begin Declare @tmp Table( 客户编号 CHAR(10), 最近入库日期距今天 int, 订单号 char(15), 序号 char(4), 库存数量 decimal(10,2), 库存金额 decimal(10,2), 品号 char(20), 品名 char(50), 订单数量 decimal(10,2), 已出数量 decimal(10,2), 未出数量 decimal(10,2), 工单入库数 decimal(10,2), 工单别 char(4), 工单号 char(20), 客户订单号 char(50), 客户名称 char(50), 区域 char(10) ) Declare @客户编号 CHAR(10), @旧客户编号 CHAR(10), @最近入库日期距今天 int, @订单号 char(15), @序号 char(4), @库存数量 decimal(10,2), @库存金额 decimal(10,2), @品号 char(20),@旧品号 char(20), @品名 char(50), @订单数量 decimal(10,2), @已出数量 decimal(10,2), @未出数量 decimal(10,2), @工单入库数 decimal(10,2), @工单别 char(4), @工单号 char(20), @客户订单号 char(50), @客户名称 char(50), @区域 char(10) SET @旧品号='' Declare MyCursor CURSOR Local Static FOR --------------------20110401修改仓库库存数量金额和排序规则--------------------------------------------------- select distinct * from ( SELECT TC004 客户编号,case when ZE.dbo.GetPrd_InMaxdate(TA001,TA002)='' then 0 else datediff(day,ZE.dbo.GetPrd_InMaxdate(TA001,TA002),getdate()) end as 最近入库日期距今天,rtrim(TD002) 订单号,TD003 序号,convert(decimal(15,2),i.MC007) as 库存数量,i.MC008 as 库存金额,TD004 品号,TD005 品名,convert(decimal(15,2),TD008) 订单数量,convert(decimal(15,2),TD009) 已出数量,convert(decimal(15,2),TD008)-convert(decimal(15,2),TD009) 未出数量,ZE.dbo.Qty_WOintoInv(TA001,TA002) as 工单入库数,TA001 工单别,TA002 工单号,TC012 客户订单号,MA002 客户名称,MR003 区域 FROM ZE.dbo.COPTD inner join ZE.dbo.MOCTA ON TD001=TA026 AND TD002=TA027 AND TD003=TA028 inner JOIN ZE.dbo.COPTC ON TC001=TD001 AND TC002=TD002 inner JOIN ZE.dbo.COPMA ON TC004=MA001 left join (select * from CMSMR where MR001='2') b on MA076=b.MR002 inner join ZE.dbo.INVMB on TD004=MB001 inner join (select a.MC001,a.MC002,c.MC002 仓库,a.MC007,a.MC008 from INVMC a Inner join CMSMC c on a.MC002=c.MC001 WHERE a.MC007<>0 AND a.MC002 in('03')) i on TD004=i.MC001 WHERE (TD016='N' and TD021='Y' and i.MC007>100 and datediff(day,ZE.dbo.GetPrd_InMaxdate(TA001,TA002),getdate())>10 and convert(decimal(15,2),TD008)>100 and ZE.dbo.GetMainQty(TD004)-(convert(decimal(15,2),TD008)-convert(decimal(15,2),TD009))>=0 --库存数量-未出数量>0 and ZE.dbo.Date10(COPTC.TC003)<convert(varchar(10),dateadd(month,2,getdate()),120) and datediff(day,getdate(),TD013)<90 and ZE.dbo.GetPrd_InMaxdate(TA001,TA002)<>'' ) OR ( TD016='N' and TD021='Y' --未结束订单 已审核 and i.MC007>100 --库存大于100 and datediff(day,ZE.dbo.GetPrd_InMaxdate(TA001,TA002),getdate())>10 --取最近入库日期超过10天的 and convert(decimal(15,2),TD008)>100 --订单数量>100 and ZE.dbo.Date10(COPTC.TC003)<convert(varchar(10),dateadd(month,2,getdate()),120) and datediff(day,getdate(),TD013)<90 and ZE.dbo.GetPrd_InMaxdate(TA001,TA002)<>'' ) )a order by 品号 desc ,a.最近入库日期距今天 desc Open MyCursor While 1=1 Begin Fetch MyCursor into @客户编号, @最近入库日期距今天, @订单号, @序号, @库存数量, @库存金额, @品号, @品名, @订单数量, @已出数量, @未出数量, @工单入库数, @工单别, @工单号, @客户订单号, @客户名称, @区域 if @@fetch_status<>0 Break PRINT @旧品号 PRINT @品号 if (@旧品号<>@品号) BEGIN INSERT @tmp(客户编号,最近入库日期距今天,订单号,序号,库存数量,库存金额,品号,品名,订单数量,已出数量,未出数量,工单入库数,工单别,工单号,客户订单号,客户名称,区域) VALUES( @客户编号, @最近入库日期距今天, @订单号, @序号, @库存数量, @库存金额, @品号, @品名, @订单数量, @已出数量, @未出数量, @工单入库数, @工单别, @工单号, @客户订单号, @客户名称, @区域 ) END ELSE BEGIN INSERT @tmp(客户编号,最近入库日期距今天,订单号,序号,库存数量,库存金额,品号,品名,订单数量,已出数量, 未出数量,工单入库数,工单别,工单号,客户订单号,客户名称,区域) VALUES( @客户编号, @最近入库日期距今天, @订单号, @序号, NULL, NULL, @品号, @品名, @订单数量, @已出数量, @未出数量, @工单入库数, @工单别, @工单号, @客户订单号, @客户名称, @区域 ) END SET @旧品号=@品号 End Close MyCursor Deallocate MyCursor select * from @tmp where 最近入库日期距今天>30 End


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值