用友U861 的最高最低库存量预警 代码,用用友懂sql的可以自己修改项目,增减项目,作为报表来使用最高最低库存量
Select WareHouse.cWhName As 仓库 ,I.cInvAddCode As 存货代码 , I.cInvCode AS 存货编码,I.cInvName AS 存货名称,I.cInvStd AS 规格型号, CU.cComUnitName AS 计量单位,LTRIM(STR(SUM(ISNULL(iQuantity,0)),20,2 )) AS 当前库存数量 , LTRIM(STR(SUM(CASE WHEN IsNull(ST.bStopFlag,0) = 0 THEN 0 ELSE ISNULL(ST.iQuantity,0) END ) ,20 ,2)) AS 冻结量,LTRIM(STR(SUM(fDisableQuantity) ,20,2)) AS 不合格品量, LTRIM(STR(SUM(ST.fOutQuantity ),20,2)) AS 待发货量, LTRIM(STR(SUM(ST.fTransOutQuantity ),20,2)) AS 调拨待发量, LTRIM(STR(SUM( CASE WHEN IsNull(ST.bStopFlag,0) = 1 THEN 0 ELSE ISNULL(ST.iQuantity,0) END - ISNULL(ST.fOutQuantity,0) - ISNULL(ST.fTransOutQuantity,0)),20,2)) AS 可用量 ,LTRIM(STR(WInv.iTopSum,20, 2 )) AS 最高库存量 ,( Case When (SUM(ISNULL(iQuantity,0)) - ISNULL(WInv.iTopSum,0)) <=0 Then '' Else LTRIM(STR(SUM(ISNULL(iQuantity,0)) - ISNULL(WInv.iTopSum,0),20,2)) End ) AS 超储量, LTRIM(STR(WInv.iLowSum,20,2 )) AS 最低库存量 , (Case When (ISNULL(WInv.iLowSum,0) - SUM(ISNULL(iQuantity,0))) <= 0 Then '' Else LTRIM(STR(ISNULL(WInv.iLowSum,0) - SUM(ISNULL(iQuantity,0)),20 ,2)) End ) AS 短缺量 From (select * from CurrentStock ) ST Right JOIN (WhInvContrapose AS WInv inner join Inventory I On WInv.cInvCode = I.cInvCode inner JOIN WareHouse ON WInv.cWhCode = WareHouse.cWhCode) ON ST.cInvCode = WInv.cInvCode AND ST.cWhCode = WInv.cWhCode left JOIN ComputationUnit CU ON I.cComUnitCode = CU.cComUnitCode WHERE (1 = 1) Group By I.cInvCode,I.cInvAddCode,I.cInvName,I.cInvStd,CU.cComUnitName,WInv.iTopSum,WInv.iLowSum ,WareHouse.cWhName Having Sum( CASE WHEN IsNull(ST.bStopFlag,0) = 1 THEN 0 ELSE ISNULL(ST.iQuantity,0) END - ISNULL(ST.fOutQuantity,0) - ISNULL(ST.fTransOutQuantity,0)) > WInv.iTopSum Or Sum( CASE WHEN IsNull(ST.bStopFlag,0) = 1 THEN 0 ELSE ISNULL(ST.iQuantity,0) END - ISNULL(ST.fOutQuantity,0) - ISNULL(ST.fTransOutQuantity,0)) < WInv.iLowSum |