Files
GateDge2023_ljy/04.天大药业(珠海)有限公司/02.天大中医药/GZ.BGP.K3.GSP.Business.PlugIn/sql/重点药品确认单-提取.sql

103 lines
4.3 KiB
MySQL
Raw Normal View History

2024-07-16 10:33:50 +08:00
SELECT DATEDIFF(Day,ISNULL(T3.F_BGP_MAINTDATE,T3.FINSTOCKDATE),GETDATE()) AS DIFFDay
,T2.F_BGP_DAY
,ISNULL(T7.F_BGP_DAY,- 1) AS FNearDAY
,T2.F_BGP_DAY - DATEDIFF(Day,ISNULL(T3.F_BGP_MAINTDATE,GETDATE()),GETDATE()) AS FEnableDay
,T2.FNUMBER
,T0.FSTOCKORGID
,T1.FMATERIALID
,T1.FNUMBER AS FMaterialNum
,T1.F_BGP_ISCOLDCHAIN
,T1.F_BGP_ISSPECIAL
,T1.F_BGP_BIGCLASS
,T6.FNAME AS F_BGP_BIGCLASS_Name
,CONVERT(varchar(10),T1.F_BGP_FIRSTDATE,21) AS F_BGP_FirstDate
,(CASE WHEN T1.F_BGP_FirstDate IS NULL THEN 0 WHEN DATEDIFF(Year,T1.F_BGP_FirstDate,GetDate()) > 1 THEN 0 ELSE 1 END) AS DIFFYear
,(CASE WHEN T1.F_BGP_FirstDate IS NULL THEN 0 ELSE DATEDIFF(Year,T1.F_BGP_FirstDate,GetDate()) END) AS DIFFYear
,T1.F_BGP_MAINTAINCLASS
,'0' AS F_BGP_MainteState
,T0.FSTOCKUNITID
,T0.FBASEUNITID
,T0.FQTY
,T0.FBaseQty
,CONVERT(varchar( 10),isnull(T0.FPRODUCEDATE,T3.FPRODUCEDATE),21) AS FPRODUCEDATE
,CONVERT(varchar(10),isnull(T0.FEXPIRYDATE,T3.FEXPIRYDATE),21) AS FExpiryDate
,T0.FLOT
,T0.FSTOCKID
,T0.FSTOCKLOCID
,T5.FEXPUNIT
,T5.FEXPPERIOD
,CASE WHEN T5.FEXPUNIT = 'M' THEN T5.FExpPeriod
WHEN T5.FEXPUNIT = 'Y' THEN T5.FExpPeriod * 12
WHEN T5.FEXPUNIT = 'D' THEN T5.FExpPeriod / 30 ELSE 0 END AS FExpMonth
,ISNULL(T3.F_BGP_MAINTDATE + CAST(T2.F_BGP_DAY AS int),GETDATE()) AS F_BGP_SHOULDMAINTEDATE
,T3.FINSTOCKDATE
,DATEDIFF(Month,T3.FINSTOCKDATE,GETDATE()) AS FInStockMonth
,T0.FOWNERTYPEID
,T0.FOWNERID
,T0.FKEEPERTYPEID
,T0.FKEEPERID
,T0.FSTOCKSTATUSID
,FAuxPropId
,FSecQty
,FSecUnitId
,t10.FInStockDate FIRFInStockDate
,F_BGP_FirstStatus
,(Case WHEN T10.FInStockDate is null THEN 0 WHEN DateDiff(Year,T10.FInStockDate,GetDate()) > 1 THEN 0 else 1 end) FDIFFYear
,F_BGP_INVENTORYID
FROM (
SELECT fid F_BGP_INVENTORYID
,FSTOCKORGID
,FMATERIALID
,FBASEUNITID
,FSTOCKUNITID
,FLOT
,FSTOCKID
,FSTOCKLOCID
,FPRODUCEDATE
,FEXPIRYDATE
,FOWNERTYPEID
,FOWNERID
,FKEEPERTYPEID
,FKEEPERID
,FSTOCKSTATUSID
,SUM(FQTY) AS FQTY
,SUM(FBASEQTY) AS FBaseQty
,FAuxPropId
,SUM(FSecQty)as FSecQty
,FSecUnitId
FROM dbo.T_STK_INVENTORY
WHERE not exists(
SELECT distinct F_BGP_INVENTORYID
FROM T_BGP_MaintePlanB mb where F_BGP_BaseQty > F_BGP_BaseMaintQty AND F_BGP_INVENTORYID = T_STK_INVENTORY.fid )
GROUP BY FSTOCKORGID
,FMATERIALID
,FBASEUNITID
,FSTOCKUNITID
,FLOT
,FSTOCKID
,FSTOCKLOCID
,FPRODUCEDATE
,FEXPIRYDATE
,FOWNERTYPEID
,FOWNERID
,FKEEPERTYPEID
,FKEEPERID
,FSTOCKSTATUSID
,FAuxPropId
,FSecUnitId
,fid
) AS T0
INNER JOIN dbo.T_BD_MATERIAL AS T1 ON T0.FMATERIALID = T1.FMASTERID AND T0.FSTOCKORGID = T1.FUSEORGID
LEFT JOIN
(
SELECT FMATERIALID
,MIN(FInStockDate)FInStockDate
FROM T_BD_LotMaster
GROUP BY FMATERIALID
)T10 ON T1.FMATERIALID = T10.FMaterialID
INNER JOIN dbo.T_BGP_MaintainType AS T2 ON T1.F_BGP_MAINTAINCLASS = T2.FID
INNER JOIN dbo.T_BD_LOTMASTER AS T3 ON T0.FLOT = T3.FLOTID
INNER JOIN dbo.T_BD_MATERIALSTOCK AS T5 ON T0.FMATERIALID = T5.FMATERIALID
LEFT OUTER JOIN dbo.T_BGP_BigClass_L AS T6 ON T1.F_BGP_BIGCLASS = T6.FID
LEFT OUTER JOIN dbo.T_BGP_EffectType AS T7 ON T1.F_BGP_EFFECTTYPE = T7.FID
WHERE (T0.FBaseQty > 0)