博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
test---092223
阅读量:4092 次
发布时间:2019-05-25

本文共 3593 字,大约阅读时间需要 11 分钟。

-- =============================================   -- Author: 
-- Create
date: <
2015-
12-
22> -- Modify
by: -- Description:
for purchase> -- ============================================= ALTER PROC [dbo].[UP_ForcastForPur]
as
declare @NEEDAFTER BIT --需求日期后的需求是否纳入计算:
1->是;
0->否
declare @now
as
char(
8), @wkdate1
as
char(
8), @wkdate2
as
char(
8), @wkdate3
as
char(
8), @wkdate4
as
char(
8)
set @NEEDAFTER=
1
set @now=convert(
char(
8),getdate(),
112)
set @wkdate1=convert(
char(
8),dateadd(week,
1,getdate()),
112)
set @wkdate2=convert(
char(
8),dateadd(week,
2,getdate()),
112)
set @wkdate3=convert(
char(
8),dateadd(week,
3,getdate()),
112)
set @wkdate4=convert(
char(
8),dateadd(week,
4,getdate()),
112);
with A --计算预计领用需求
as(
select TB003 品号,ISNULL(SUM(TB004-TB005)*ISNULL(MD004,
1)/ISNULL(MD003,
1),
0)
as 预计领用,TA009
as 领用日期
from MOCTA INNER
JOIN MOCTB
ON TA001=TB001
AND TA002=TB002 LEFT
JOIN INVMD
ON MD001=TB003
AND MD002=TB007
AND MD007=
'Y'
WHERE UPPER(TA011)<>
'Y' AND TB018='Y'
AND LEFT(TB003,
3)=
'312'
AND TB015 >=@now
AND TB015 <@wkdate4 --TB015<=(
CASE @NEEDAFTER
WHEN
1
THEN
'99991231' ELSE @NEEDDATE END) --
AND TA009 >=@now
AND TA009 <@wkdate4
group
by TB003,TA009,MD004,MD003),B --计算安全库存量与现有库存量
as(
select MC001 品号,MC004 安全库存,MC007 现有库存
from INVMC
WHERE MC002=
'01' and left(MC001,3)='312'), C --计算
4周预计领用分布
as(
SELECT A.品号,预计领用,
case
when A.领用日期 >=@now
AND A.领用日期 <@wkdate1
then
'第一周'
when A.领用日期 >=@wkdate1
AND A.领用日期 <@wkdate2
then
'第二周'
when A.领用日期 >=@wkdate2
AND A.领用日期 <@wkdate3
then
'第三周'
when A.领用日期 >=@wkdate3
AND A.领用日期 <@wkdate4
then
'第四周'
else
'其他' END 所属周
FROM A )--计算结果
select pvt.品号,MB002
AS 品名,MB003
AS 规格,MA002
AS 主供应商,isnull(pvt.第一周,
0)
as 第一周,isnull(pvt.第二周,
0)
as 第二周,isnull(pvt.第三周,
0)
as 第三周,isnull(pvt.第四周,
0)
as 第四周,isnull(pvt.第一周,
0)+isnull(pvt.第二周,
0)+isnull(pvt.第三周,
0)+isnull(pvt.第四周,
0) 总需求,
case
when (isnull(pvt.第一周,
0)+isnull(pvt.第二周,
0)+isnull(pvt.第三周,
0)+isnull(pvt.第四周,
0)-现有库存)<=
0
then
0
else (isnull(pvt.第一周,
0)+isnull(pvt.第二周,
0)+isnull(pvt.第三周,
0)+isnull(pvt.第四周,
0)-现有库存)
END
as 缺料情况,现有库存,
CASE
WHEN MB034=
'R' then '按补货点'
WHEN MB034=
'M' then '按MRP需求'
WHEN MB034=
'L' then '按LRP需求'
WHEN MB034=
'N' then '不需'
else
'按历史销售' END as 补货政策, @now+
'~'+@wkdate4 as 日期
from (
select 品号,预计领用,所属周
from C) p PIVOT(SUM(预计领用)
FOR 所属周
in([第一周],[第二周],[第三周],[第四周]))
as pvt INNER
JOIN INVMB
ON pvt.品号=MB001 LEFT
JOIN PURMA
ON MB032=MA001 INNER
JOIN B
ON pvt.品号=B.品号
order
by pvt.品号

    转载地址:http://ydpii.baihongyu.com/

    你可能感兴趣的文章
    副业过万的程序员都知道的网站有哪些
    查看>>
    那些人生“开挂”的程序员,都在干什么?
    查看>>
    影响科学圈的那些计算机代码
    查看>>
    乐视视频 App 图标改为“欠 122 亿”,网友:我在别家分红包,却在你家随份子!...
    查看>>
    乔布斯18岁求职信拍卖价22.24万美元,值吗?
    查看>>
    为何程序员总喜欢写技术博客,看完恍然大悟...
    查看>>
    假如计算机是中国人发明的,那代码应该这么写
    查看>>
    科技公司最爱的 50 款开源工具,你都用过吗?
    查看>>
    触目惊心:比特币到底消耗了多少能源?
    查看>>
    面试官:简历上敢写技术精通?那我就不客气了!
    查看>>
    如何判断一家互联网公司要倒闭了?
    查看>>
    想快速上手机器学习?来看下这个 GitHub 项目!
    查看>>
    GitHub 标星 3.6k,一本开源的深度学习中文教程!
    查看>>
    9 款你不能错过的 JSON 工具
    查看>>
    就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
    查看>>
    200页!分享珍藏很久的Python学习知识手册(附链接)
    查看>>
    程序员之神
    查看>>
    4 岁小女孩给 Linux 内核贡献提交
    查看>>
    推荐几个私藏很久的技术公众号给大家
    查看>>
    20 个 2020 年软件开发趋势预测
    查看>>