Files
GateDge2023_ljy/MonthlyProductionSchedule/SQLServer/月度生产计划表-预测单.sql

140 lines
3.8 KiB
MySQL
Raw Normal View History

2023-12-14 10:31:17 +08:00
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_ProductionSchedule')
DROP PROCEDURE dbo.PROC_ProductionSchedule;
GO
CREATE PROCEDURE PROC_ProductionSchedule
@TableName varchar(100)
,@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) ) + '<27><>'
-- WHEN 'M' THEN
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /12 ) + '<27><>'
-- WHEN 'D' THEN
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /365) + '<27><>' ELSE ''
--END) AS '<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>'
,(CASE
CS.FEXPUNIT
WHEN 'Y' THEN
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) * 12 ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'M' THEN
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'D' THEN
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) / 365 * 12) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE ''
END) AS 'ShelfLife'
--,'' AS '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,CS.FSAFESTOCK --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,CS.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>λ
--,CP.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
--,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>'
--,CP.FPACKUNITID -- '<27><>λ'
--,AE.M01
--,AE.S01
--,AE.S02
--,AE.S03
,'' AS 'M01'
,'' AS 'S01'
,'' AS 'S02'
,'' AS 'S03'
,B.FFirmQty
,B.FOrderQty
,B.FMATERIALID
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
--Ԥ<EFBFBD>
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
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ
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
declare @sql varchar(2000)
set @sql = '
select
FID
,FENTRYID
,FBILLNO
,FMATERIALID
,FNAME
,FSPECIFICATION
,ShelfLife
--,'''' --<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,FLOTYIELD --ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,FPACKUNITCONVERRATIO -- <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>
--,CAST(FPACKUNITCONVERRATIO AS VARCHAR)+STOREUNITNAME+''/''+FPACKUNITNAME as FPACKUNITCONVT --<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,FPACKUNITID --<EFBFBD><EFBFBD>λ
,FSTOREUNITID
,STOREUNITNAME
,'''' AS --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<EFBFBD><EFBFBD>
,CAST(FSAFESTOCK AS INT) AS SAFESTOCK
,FSEQ
,0 AS M01
,0 AS S01
,0 AS S02
,0 AS S03
--,(B.PlanQty / CP.FPACKUNITCONVERRATIO)AS ''ϵͳ<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''
--,(B.VerifyQty / CP.FPACKUNITCONVERRATIO) AS ''ȷ<EFBFBD>ϼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''
,FFirmQty --ȷ<EFBFBD>ϼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,FFirmQty as FirmLotQty --ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,FOrderQty as OrderLotQty --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,'+@SeqFld+'
into '+ @TableName +' From #TMPMPS t0 '
--select @sql
EXECUTE(@sql)
drop table #TMPMPS
end
go
--DECLARE @STARTDATE DATETIME ,@ENDDATE DATETIME
--SELECT
-- @STARTDATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, '2023-12-15'), 0)
-- ,@ENDDATE = DATEADD(MS,-3, DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, 1, '2023-12-15')), 0))
--DECLARE @LCID INT
--SET @LCID = 2052
--EXEC PROC_ProductionSchedule @STARTDATE,@ENDDATE, @LCID;