DECLARE @STARTDATE DATE,@ENDDATE DATE,@LCID INT,@YEAR INT,@MONTH INT,@DAY INT SET @STARTDATE ='2023-12-01' SET @ENDDATE ='2023-12-31' SET @LCID = 2052 SET @YEAR = 2023 SET @MONTH = 12 SET @DAY = 20 --获取定时计划的参数值 SELECT @DAY = (CASE WHEN LTRIM(RTRIM(T0.FPARAMETERS)) = '' THEN @DAY ELSE CAST(T0.FPARAMETERS AS INT) END) FROM T_BAS_SCHEDULEINFO T0 WHERE T0.FSCHEDULETYPEID = '657bf589f52174' SELECT ROW_NUMBER() OVER(ORDER BY t0.FMATERIALID) AS FIDENTITYID ,t0.FMATERIALID ,t2.FNUMBER ,t2_L.FNAME ,t2_L.FSPECIFICATION ,(CASE t2S.FEXPPERIOD WHEN 0 THEN '' ELSE CASE t2S.FEXPUNIT WHEN 'Y' THEN CONVERT ( VARCHAR,CAST((t2S.FEXPPERIOD * 12) AS INT) ) + '个月' WHEN 'M' THEN CONVERT ( VARCHAR,CAST(t2S.FEXPPERIOD AS INT) ) + '个月' WHEN 'D' THEN CONVERT ( VARCHAR, CAST(( CASE t2S.FEXPPERIOD % 30 WHEN 0 THEN t2S.FEXPPERIOD / 30 ELSE t2S.FEXPPERIOD / 365 * 12 END ) AS INT)) + '个月' ELSE '' END END) AS 'SHELFLIFE' ,CONCAT(t2.FLotSize,t5_L.FNAME, '/批') AS StandardLot ,dbo.ToDecimal2(t2S.FSAFESTOCK) AS SAFESTOCK --安全库存 ,t2S.FSTOREUNITID --库存单位 ,t5_L.FNAME AS FSTOREUNITNAME ,(dbo.PackageValConver(t2S.FSAFESTOCK, t4.FPACKUNITCONVERRATIO)) AS SAFESTOCKCOUNT ,CONCAT(CONVERT(VARCHAR,dbo.ToDecimal2(t4.FPACKUNITCONVERRATIO)),t5_L.FNAME ,'/' ,t6_L.FNAME) AS FPACKUNITCONVT ,t4.FLOTYIELD -- '每批产量' ,t4.FPACKUNITCONVERRATIO -- '包装规格' ,t4.FPACKUNITID -- '单位' ,t6_L.FNAME AS FPACKUNITNAME ,dbo.PackageValConver(t0.M01,t4.FPACKUNITCONVERRATIO) as M01 ,dbo.PackageValConver(t0.S01,t4.FPACKUNITCONVERRATIO) as S01 ,dbo.PackageValConver(t0.S02,t4.FPACKUNITCONVERRATIO) as S02 ,dbo.PackageValConver(t0.S03,t4.FPACKUNITCONVERRATIO) as S03 ,dbo.PackageValConver(ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) ,t4.FPACKUNITCONVERRATIO) AS InProductionQty --在生产数量 ,dbo.PackageValConver(ISNULL(t4.FSTOCKQTY,0),t4.FPACKUNITCONVERRATIO) AS InStockQty --已入库数量 ,dbo.PackageValConver((ISNULL(t0.FFINISHQTY,0) - ISNULL(t0.FSTOCKINQUASELQTY,0) + ISNULL(t4.FSTOCKQTY,0)),t4.FPACKUNITCONVERRATIO) AS TotalStockQty --合计入库量 ,dbo.PackageValConver(ISNULL(t0.FOrderQty,0),t4.FPACKUNITCONVERRATIO) AS OrderLotQty --计划生产批数 ,dbo.PackageValConver(ISNULL(t0.FFirmQty,0), t4.FPACKUNITCONVERRATIO) AS FirmLotQty --确认生产批数 ,dbo.ToDecimal2(ISNULL(t0.FFirmQty,0)) FFirmQty --确认生产数量 ,t0.countM FROM (SELECT t0E.FMATERIALID ,sum(t1.FFirmQty) AS FFirmQty ,sum(t1.FOrderQty) AS FOrderQty ,sum(t1.FFINISHQTY) AS FFINISHQTY ,sum(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY ,sum(M01) AS M01 ,sum(S01) AS S01 ,sum(S02) AS S02 ,sum(S03) AS S03 ,count(1) AS countM FROM T_PLN_FORECAST t0 LEFT JOIN T_PLN_FORECASTENTRY t0E ON t0.FID = t0E.FID LEFT JOIN ( SELECT t1.FMATERIALID ,t1_B.FSALEORDERENTRYID ,t1_B.FSALEORDERENTRYSEQ ,t1_B.FSALEORDERID ,sum(t1.FFirmQty) AS FFirmQty ,sum(t1.FOrderQty) AS FOrderQty ,sum(t2.FFINISHQTY) AS FFINISHQTY ,sum(t2.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY FROM T_PLN_PLANORDER t1 LEFT JOIN T_PLN_PLANORDER_B t1_B ON t1.FID = t1_B.FID LEFT JOIN ( SELECT t0E.FMATERIALID ,t0E_LK.FSID ,SUM(t1.FFINISHQTY) AS FFINISHQTY --已入库数量 ,SUM(t1.FSTOCKINQUASELQTY) AS FSTOCKINQUASELQTY --合格品入库选单数量 FROM T_PRD_MO t0 LEFT JOIN T_PRD_MOENTRY t0E ON t0.FID = t0E.FID LEFT JOIN T_PRD_MOENTRY_LK t0E_LK ON t0E_LK.FENTRYID = t0E.FENTRYID AND t0E_LK.FSTABLENAME = 'T_PLN_PLANORDER' LEFT JOIN T_PRD_MOENTRY_A t0E_A ON t0E_A.FENTRYID = t0E.FENTRYID LEFT JOIN ( SELECT t0.FBILLTYPE --50fa7c2eda7947b89fab5431bf25d48e 入库汇报 e52b554423704173b7306554708a8b05 生产汇报 ,t0E.FMOENTRYID ,t0E.FFINISHQTY ,t0E_A.FSTOCKINQUASELQTY FROM T_PRD_MORPT t0 LEFT JOIN T_PRD_MORPTENTRY t0E ON t0E.FID = t0.FID LEFT JOIN T_PRD_MORPTENTRY_A t0E_A ON t0E_A.FID = t0.FID AND t0E_A.FENTRYID = t0E.FENTRYID WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FBILLTYPE = '50fa7c2eda7947b89fab5431bf25d48e' ) t1 ON t1.FMOENTRYID = t0E.FENTRYID WHERE t0E.FSRCBILLTYPE ='PLN_PLANORDER' AND t0E_A.FREQSRC = 2 AND t0E_A.FSTATUS <> 6 AND t0E.FSALEORDERENTRYID <> 0 GROUP BY t0E.FMATERIALID ,t0E_LK.FSID ) t2 ON t2.FSID = t1.FID AND t2.FMATERIALID = t1.FMATERIALID WHERE t1.FDATASOURCE = 1 AND t1_B.FDEMANDTYPE = 2 GROUP BY t1.FMATERIALID ,t1_B.FSALEORDERENTRYID ,t1_B.FSALEORDERENTRYSEQ ,t1_B.FSALEORDERID ) t1 ON (t1.FMATERIALID = t0E.FMATERIALID AND t1.FSALEORDERID = t0.FID AND t0E.FENTRYID = t1.FSALEORDERENTRYID AND t1.FSALEORDERENTRYSEQ = t0E.FSEQ) WHERE t0.FDATE BETWEEN @STARTDATE AND @ENDDATE GROUP BY t0E.FMATERIALID ) t0 LEFT JOIN T_BD_MATERIAL t2 ON t2.FMATERIALID = t0.FMATERIALID LEFT JOIN T_BD_MATERIAL_L t2_L ON (t2_L.FMATERIALID = t0.FMATERIALID AND t2_L.FLOCALEID = @LCID) LEFT JOIN T_BD_MATERIALSTOCK t2S ON t2S.FMATERIALID = t0.FMATERIALID LEFT JOIN T_MATERIAL_INVENTORY_MONTH_RECORD t4 ON (t4.FMATERIALID = t0.FMATERIALID AND t4.RECORDYEAR = @YEAR AND t4.RECORDMONTH = @MONTH and t4.RECORDDAY = @DAY) LEFT JOIN T_BD_UNIT_L t5_L ON (t5_l.FUNITID = t2S.FSTOREUNITID AND t5_L.FLOCALEID = @LCID) LEFT JOIN T_BD_UNIT_L t6_L ON (t6_l.FUNITID = t4.FPACKUNITID AND t6_L.FLOCALEID = @LCID)