WITH #其他出库单 AS ( SELECT t0.FBILLNO --,CASE WHEN t0e.F_QJCG_ASSISTANT2 = '63876e213ea87e' THEN 1 ELSE 0 END '富余量出库' --,t0e.FENTRYID,t0e.FID,t0e.FSEQ ,t0e.FMATERIALID --,t0e.FSTOCKID,t0e.FSTOCKLOCID ,SUM(t0e.FQTY) '数量' ,t0e.FPACKBILLNO,t0e.FPACKBARCODE FROM T_STK_MISDELIVERY t0 INNER JOIN T_STK_MISDELIVERYENTRY t0e on t0.FID = t0e.FID WHERE t0.FBILLNO = 'ZHBR-QTCK241224002' GROUP BY t0.FBILLNO,t0e.FPACKBILLNO,t0e.FPACKBARCODE,t0e.FMATERIALID--,t0e.FSTOCKID,t0e.FSTOCKLOCID --,t0e.F_QJCG_ASSISTANT2,t0.FBILLNO ) SELECT t0.FBILLNO,t1.FMATERIALID,t1.数量 * t0e.FQTY / t2.总数量,t3.F_UNITIDHS,t0e.FEntryID --UPDATE t0e SET t0e.FQTY = t0e.FQTY + (t1.Qty * t0e.FQTY / t2.总数量 * t3.F_UNITIDHS) FROM T_PRD_PACKAGEINSTOCK t0 INNER JOIN T_PRD_PACKAGEINSTOCKENTRY t0e on t0e.FID = t0.FID INNER JOIN #其他出库单 t1 on t1.FPACKBILLNO = t0.FBILLNO AND t0e.FMATERIALID = t1.FMATERIALID CROSS APPLY ( SELECT SUM(t2e.FQTY) AS '总数量' FROM T_PRD_PACKAGEINSTOCKENTRY t2e WHERE t2e.FID = t0e.FID AND t2e.FMATERIALID = t0e.FMATERIALID ) t2 INNER JOIN T_BD_MATERIAL t3 on t3.FMATERIALID = t0e.FMATERIALID