如何求出总需求数量

1.png

2.png

用户先选择月度计划(可多选),再选择物料编号,那么会搜索出多个月度计划多个订单的这个编号的需求数量,我想算出总需求数量=根据用户选择的月度计划来算出,这些计划中的某物料的总需求数量,请问这个总需求数量的公式改怎么写呢

FineReport xfh 发布于 昨天 17:53 (编辑于 昨天 17:54
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
xfhLv2见习互助
发布于8 小时前

改了sqlSELECT Pu_ReqSub.SSaOrderNO,       Pu_ReqSub.SItemNO AS SItemSubNO,       Pu_ReqSub.SItemName AS SItemSubName,       Pu_ReqSub.SItemSpec AS SItemSubSpec,       Pu_ReqSub.SItemPhoto AS SItemSubPhoto,       Pu_ReqSub.SQtys AS SQtys_Req,       B.SQtys_ZReq,       ISNULL(A.SQtys_ALL,0) AS SQtys_ALL,      ISNULL(B.SQtys_ZReq-A.SQtys_ALL,0) AS SQtys_ZReq_QL,       Ba_Unit.SUnit,       Wh_WareHouse.SWareHouse,       It_ItemClass.SItemClass,       Pu_Supply.SSupplyName,       Pu_Req.FIDFROM dbo.Pu_ReqSub    LEFT JOIN dbo.Pu_Req        ON Pu_Req.SID = Pu_ReqSub.SPID    LEFT JOIN Pu_OrderSub        ON Pu_OrderSub.SPuReqSubID = Pu_ReqSub.SID    LEFT JOIN Pu_Order        ON Pu_Order.SID = Pu_OrderSub.SPID    LEFT JOIN Pu_Supply        ON Pu_Supply.SID = Pu_Order.SSupplyID    INNER JOIN dbo.It_ITem        ON It_ITem.SID = Pu_ReqSub.SItemID    LEFT JOIN dbo.Ba_Unit        ON It_ITem.SUnitID = Ba_Unit.SID    LEFT JOIN It_ItemClass        ON It_ItemClass.SID = dbo.Pu_ReqSub.SItemClassID    LEFT JOIN dbo.Wh_WareHouse        ON Wh_WareHouse.SID = It_ITem.SWareHouseID    LEFT JOIN    (        SELECT SItemID,               SUM(SQtys_Current) AS SQtys_ALL        FROM dbo.Wh_CurStock        WHERE ISNULL(SItemStatusID, 0) = 1              AND SWareHouseID IN                  (                      SELECT SID FROM dbo.Wh_WareHouse WHERE ISNULL(SIsPlan, 0) = 1                  )        GROUP BY SItemID    ) A        ON A.SItemID = Pu_ReqSub.SItemID    LEFT JOIN    (        SELECT SItemID,               SUM(SQtys) AS SQtys_ZReq        FROM Pu_ReqSub            LEFT JOIN dbo.Pu_Req                ON Pu_Req.SID = dbo.Pu_ReqSub.SPID        WHERE Pu_Req.FID IN ('${月度计划}')        GROUP BY SItemID    ) B        ON B.SItemID = dbo.Pu_ReqSub.SItemIDWHERE Pu_Req.FTabName = 'PL_ProjSA'      AND Pu_Req.FID IN ('${月度计划}')ORDER BY Pu_ReqSub.SSaOrderNO,SItemSubNO

最佳回答
0
用户k6280494Lv6资深互助
发布于昨天 17:55
  • xfh xfh(提问者) 谢谢可以解决,但是数据量太大了,查询特别慢,还是考虑写在sql中试下。
    2025-03-12 18:24 
最佳回答
0
CD20160914Lv8专家互助
发布于昨天 20:05(编辑于 昨天 20:06

select 

你原来的代码

from 表名称

where 条件

union all

/*注意这个里面,要把你第一段所有列名称与类型保证一致,没有的话直接比如'' as 订单号*/

/*第一段如果某一列是文本格式,你就直接用空,如果是数字类型,你不需要的话,只是为了占位

直接用0 as 欠料数量*/

select 

sum(需求数量) as 需求数量

from 表名称

where 条件和上面保持一样

group by 字段名称

  • xfh xfh(提问者) 谢谢,目前我是这么写了,可以达到需求
    SELECT Pu_ReqSub.SSaOrderNO,
    Pu_ReqSub.SItemNO AS SItemSubNO,
    Pu_ReqSub.SItemName AS SItemSubName,
    Pu_ReqSub.SItemSpec AS SItemSubSpec,
    Pu_ReqSub.SItemPhoto AS SItemSubPhoto,
    Pu_ReqSub.SQtys AS SQtys_Req,
    B.SQtys_ZReq,
    ISNULL(A.SQtys_ALL,0) AS SQtys_ALL,
    ISNULL(B.SQtys_ZReq-A.SQtys_ALL,0) AS SQtys_ZReq_QL,
    Ba_Unit.SUnit,
    Wh_WareHouse.SWareHouse,
    It_ItemClass.SItemClass,
    Pu_Supply.SSupplyName,
    Pu_Req.FID
    FROM dbo.Pu_ReqSub
    LEFT JOIN dbo.Pu_Req
    ON Pu_Req.SID = Pu_ReqSub.SPID
    LEFT JOIN Pu_OrderSub
    ON Pu_OrderSub.SPuReqSubID = Pu_ReqSub.SID
    LEFT JOIN Pu_Order
    ON Pu_Order.SID = Pu_OrderSub.SPID
    LEFT JOIN Pu_Supply
    ON Pu_Supply.SID = Pu_Order.SSupplyID
    INNER JOIN dbo.It_ITem
    ON It_ITem.SID = Pu_ReqSub.SItemID
    LEFT JOIN dbo.Ba_Unit
    ON It_ITem.SUnitID = Ba_Unit.SID
    LEFT JOIN It_ItemClass
    ON It_ItemClass.SID = dbo.Pu_ReqSub.SItemClassID
    LEFT JOIN dbo.Wh_WareHouse
    ON Wh_WareHouse.SID = It_ITem.SWareHouseID
    LEFT JOIN
    (
    SELECT SItemID,
    SUM(SQtys_Current) AS SQtys_ALL
    FROM dbo.Wh_CurStock
    WHERE ISNULL(SItemStatusID, 0) = 1
    AND SWareHouseID IN
    (
    SELECT SID FROM dbo.Wh_WareHouse WHERE ISNULL(SIsPlan, 0) = 1
    )
    GROUP BY SItemID
    ) A
    ON A.SItemID = Pu_ReqSub.SItemID

    LEFT JOIN
    (
    SELECT SItemID,
    SUM(SQtys) AS SQtys_ZReq
    FROM Pu_ReqSub
    LEFT JOIN dbo.Pu_Req
    ON Pu_Req.SID = dbo.Pu_ReqSub.SPID
    WHERE Pu_Req.FID IN ('${月度计划}')
    GROUP BY SItemID
    ) B
    ON B.SItemID = dbo.Pu_ReqSub.SItemID
    WHERE Pu_Req.FTabName = 'PL_ProjSA'
    AND Pu_Req.FID IN ('${月度计划}')
    ORDER BY Pu_ReqSub.SSaOrderNO,SItemSubNO
    2025-03-13 08:47 
  • 2关注人数
  • 32浏览人数
  • 最后回答于:8 小时前
    请选择关闭问题的原因
    确定 取消
    返回顶部