Files
GateDge2023_ljy/MonthlyProductionSchedule/SQLServer/月度生产计划表-预测单.sql
PastSaid ea90726158 a
2023-12-15 09:08:09 +08:00

83 lines
2.3 KiB
Transact-SQL

IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_INQUIRPLMTMPRTP')
DROP PROCEDURE dbo.PROC_INQUIRPLMTMPRTP;
GO
CREATE PROCEDURE PROC_INQUIRPLMTMPRTP
@STARTDATE date
,@ENDDATE date
,@LCID int
,@SeqFld varchar(200)
AS
BEGIN
SELECT
A.FID
,A.FBILLNO
,AE.FMATERIALID
,AE.FENTRYID
,C.FNUMBER
,C_L.FNAME
,C_L.FSPECIFICATION
,(CASE
CS.FEXPUNIT
WHEN 'Y' THEN
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) * 12 ) + '个月'
WHEN 'M' THEN
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '个月'
WHEN 'D' THEN
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) / 365 * 12) + '个月' ELSE ''
END) AS 'ShelfLife'
--,'' AS '标准批量'
,CS.FSAFESTOCK --安全库存
,CS.FSTOREUNITID --库存单位
--,CP.FLOTYIELD -- '每批产量'
--,CP.FPACKUNITCONVERRATIO -- '包装规格'
--,CP.FPACKUNITCONVERRATIO -- '包装规格-换算'
--,CP.FPACKUNITID -- '单位'
--,AE.M01
--,AE.S01
--,AE.S02
--,AE.S03
,'' AS 'M01'
,'' AS 'S01'
,'' AS 'S02'
,'' AS 'S03'
,B.FFirmQty
,B.FOrderQty
into #TMPMPS
FROM
(
SELECT
A.FMATERIALID
,A_B.FSALEORDERENTRYID
,SUM(A.FFirmQty) as 'FFirmQty'
,SUM(A.FORDERQTY) as 'FOrderQty'
FROM
T_PLN_PLANORDER A
LEFT JOIN T_PLN_PLANORDER_B A_B ON A.FID = A_B.FID
WHERE
A.FRELEASETYPE = 1 --AND (A.FRELEASESTATUS = 1 OR A.FRELEASESTATUS = 2 )
group By
A.FRELEASETYPE
,A.FMATERIALID
,A_B.FSALEORDERENTRYID
) B
--预测单
LEFT JOIN T_PLN_FORECASTENTRY AE ON B.FSALEORDERENTRYID = AE.FENTRYID
LEFT JOIN T_PLN_FORECAST A ON A.FID = AE.FID
LEFT JOIN T_BD_MATERIAL C ON C.FMATERIALID = B.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L C_L ON C_L.FMATERIALID = B.FMATERIALID
LEFT JOIN T_BD_MATERIALSTOCK CS ON CS.FMATERIALID = B.FMATERIALID
LEFT JOIN T_BD_MATERIALPRODUCE CP ON CP.FMATERIALID = B.FMATERIALID
WHERE
--A.FDATE BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59'
A.FDATE BETWEEN @STARTDATE AND @ENDDATE
--更新单位
alter table #TMPMPS add STOREUNITNAME varchar(10)
update #TMPMPS SET #TMPMPS.STOREUNITNAME = B_L.FNAME from T_BD_UNIT_L B_L where B_L.FUNITID = #TMPMPS.FSTOREUNITID
--alter table #TMPMPS add FPACKUNITNAME varchar(10)
--update #TMPMPS set #TMPMPS.FPACKUNITNAME = B_L.FNAME from T_BD_UNIT_L B_L where B_L.FUNITID = #TMPMPS.FPACKUNITID
END