Files
GateDge2023_ljy/SAL_OUTSTOCK/SQLServer/月度生产计划表-预测单.sql
PastSaid a44ce28933 aa
2023-12-14 10:31:17 +08:00

87 lines
2.9 KiB
Transact-SQL

DECLARE @DATE DATE,@STARTDATE DATETIME ,@ENDDATE DATETIME
SET @DATE = '2023-12-15'
SELECT
@STARTDATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, @DATE), 0)
,@ENDDATE = DATEADD(MS,-3, DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, 1, @DATE)), 0))
DECLARE @LCID INT
SET @LCID = 2052
SELECT
A.FBILLNO
,AE.FMATERIALID
,AE.FENTRYID
,C_L.FNAME AS '产品名称'
,C_L.FSPECIFICATION AS '规格型号'
--,(CASE
-- CS.FEXPUNIT
-- WHEN 'Y' THEN
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '年'
-- WHEN 'M' THEN
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /12 ) + '年'
-- WHEN 'D' THEN
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /365) + '年' ELSE ''
--END) AS '有效期'
,(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 '有效期'
--,'' AS '标准批量'
--,CP.FLOTYIELD AS '每批产量'
--,CP.FPACKUNITCONVERRATIO AS '包装规格'
--,CP.FPACKUNITCONVERRATIO AS '包装规格-换算'
--,CP.FPACKUNITID AS '单位'
,CS.FSTOREUNITID AS '单位'
,'' AS '安全库存量(件)'
,CAST(CS.FSAFESTOCK AS INT) AS '安全库存数量'
,AE.FSEQ
--,AE.M01 AS '本月预计需求量'
--,AE.S01 AS '前三月发货量'
--,AE.S02 AS '前二月发货量'
--,AE.S03 AS '前一月发货量'
,'' AS '前三月发货量'
,'' AS '前二月发货量'
,'' AS '前一月发货量'
--,DE.FSRCBILLNO
--,EE_A.FSTOCKINQUAAUXQTY AS '已入库量'
--,'' AS '在生产量'
--,(EE_A.FSTOCKINQUAAUXQTY + 0) AS '合计库存量'
--,'' AS '计划生产批数'
--,(B.PlanQty / CP.FPACKUNITCONVERRATIO)AS '系统计划生产批数'
--,(B.VerifyQty / CP.FPACKUNITCONVERRATIO) AS '确认计划生产批数'
,B.VerifyQty AS '确认计划生产量'
--,DE.FREMARK AS '备注'
FROM
T_PLN_FORECAST A --预测单
LEFT JOIN T_PLN_FORECASTENTRY AE ON A.FID = AE.FID
LEFT JOIN (
SELECT
A.FMATERIALID
,A_B.FSALEORDERENTRYID
,SUM(case when A.FRELEASESTATUS = 1 then A.FDemandQty else 0 end) as 'PlanQty'
,SUM(case when A.FRELEASESTATUS = 2 then A.FDemandQty else 0 end) as 'VerifyQty'
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 ON B.FSALEORDERENTRYID = AE.FENTRYID
LEFT JOIN T_BD_MATERIAL C ON C.FMATERIALID = AE.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L C_L ON C_L.FMATERIALID = AE.FMATERIALID
LEFT JOIN T_BD_MATERIALSTOCK CS ON CS.FMATERIALID = AE.FMATERIALID
LEFT JOIN T_BD_MATERIALPRODUCE CP ON CP.FMATERIALID = C.FMATERIALID
--LEFT JOIN T_PRD_MOENTRY_LK DE_LK ON DE_LK.FSID = B.FID
--LEFT JOIN T_PRD_MOENTRY DE ON DE.FENTRYID = DE_LK.FENTRYID
--LEFT JOIN T_PRD_MOENTRY EE ON EE.FMATERIALID = B.FMATERIALID --生产订单
--LEFT JOIN T_PRD_MOENTRY_A EE_A ON EE_A.FENTRYID = EE.FENTRYID AND EE.FID =EE_A.FID --生产订单
WHERE
A.FDATE BETWEEN @STARTDATE AND @ENDDATE