SELECT tt0.* --CONVERT(int,tt0.inRow) AS 'inRow' ,ISNULL(tt2.物料内码,0) AS '物料内码' ,ISNULL(tt2.含税单价,0) AS '含税单价' ,ISNULL(tt2.综合单价,0) AS '综合单价' ,ISNULL(tt2.默认税率,0) AS '默认税率' ,tt2.FUSEORGID INTO #TMP FROM ( SELECT t0.FBILLNO ,t0.FAPPLICATIONDATE ,t0e.FMATERIALID MATERIALID ,t0e.FENTRYID ,t0e.FEVALUATEPRICE --单价 ,t0e.FTAXPRICE --含税单价 ,t0e.FTAXRATE --税率 ,t0e.FAMOUNT --金额 ,t0e.FREQAMOUNT --含税金额 ,t0e.FREQQTY FROM T_PUR_Requisition t0 INNER JOIN T_PUR_ReqEntry t0e on t0.FID = t0e.FID WHERE 1 = 1 --AND t0.FBILLNO = 'CGSQ000769' --AND t0e.FEVALUATEPRICE = 0 AND t0.FAPPLICATIONORGID = 101542 --AND t0.FDOCUMENTSTATUS = 'C' AND t0.FAPPLICATIONDATE >= '2024-04-01 00:00:00' ) tt0 OUTER APPLY ( SELECT TOP 1 t0e.FID ,t0e.FENTRYID ,t0.FBILLNO ,t0.F_QNV_TEXT2 ,t0e.F_QNV_BASE1 AS '物料内码' ,t0e.F_QNV_DECIMAL1 AS '含税单价' ,t0e.F_QNV_DECIMAL3 AS '综合单价' ,t0e.F_QNV_DATE2 AS '单价生效日期' ,t0e.F_QNV_DATE3 AS '单价失效日期' ,t1.FTAXRATE AS '默认税率' ,tt1.FUSEORGID FROM QNV_t_Cust_Entry100003 t0 INNER JOIN QNV_t_Cust_Entry100004 t0e on t0.FID = t0e.FID INNER JOIN T_BD_TAXRATE t1 on t1.FID = t0e.F_QNV_BASE3 CROSS APPLY ( SELECT t3.FMATERIALID,t3.FUSEORGID FROM T_BD_MATERIAL t2 INNER JOIN T_BD_MATERIAL t3 on t2.FMASTERID = t3.FMASTERID --AND (t3.FUSEORGID = 101542 OR t3.FUSEORGID = 101549 OR t3.FUSEORGID = 1) WHERE t2.FMATERIALID = tt0.MATERIALID AND t3.FMATERIALID = t0e.F_QNV_BASE1 ) tt1 WHERE 1 = 1 AND t0.FDOCUMENTSTATUS ='C' AND GETDATE() BETWEEN t0e.F_QNV_DATE2 AND t0e.F_QNV_DATE3 ORDER BY t0e.F_QNV_DATE2 DESC ) tt2 WHERE 1 = 1 --SELECT t1.含税单价/(1+t1.默认税率/100)--单价 -- ,t1.含税单价 --含税单价 -- ,t1.默认税率 --税率 -- ,t1.含税单价/(1+t1.默认税率/100) * t0e.FREQQTY--金额 -- ,t1.含税单价 * t0e.FREQQTY --含税金额 -- ,t1.FAPPLICATIONDATE --FROM T_PUR_ReqEntry t0e -- INNER JOIN #TMP t1 on t0e.FENTRYID = t1.FENTRYID --ORDER BY t1.FAPPLICATIONDATE DESC --UPDATE t0e SET t0e.FEVALUATEPRICE = t1.含税单价/(1+t1.默认税率/100)--单价 -- ,t0e.FTAXPRICE = t1.含税单价 --含税单价 -- ,t0e.FTAXRATE =t1.默认税率 --税率 -- ,t0e.FAMOUNT = t1.含税单价/(1+t1.默认税率/100) * t0e.FREQQTY--金额 -- ,t0e.FREQAMOUNT = t1.含税单价 * t0e.FREQQTY --含税金额 --FROM T_PUR_ReqEntry t0e -- INNER JOIN #TMP t1 on t0e.FENTRYID = t1.FENTRYID SELECT t0.FBILLNO ,t0.FAPPLICATIONDATE ,t0.FID ,t0.FTOTALAMOUNT ,t1.sumREQAMOUNT ,t0.FTOTALNOREQAMOUNT ,t1.sumAMOUNT --UPDATE t0 SET t0.FTOTALAMOUNT = t1.sumREQAMOUNT -- ,t0.FTOTALNOREQAMOUNT =t1.sumAMOUNT FROM T_PUR_Requisition t0 CROSS APPLY ( SELECT SUM(t0e.FAMOUNT) sumAMOUNT,SUM(t0e.FREQAMOUNT) sumREQAMOUNT FROM T_PUR_ReqEntry t0e WHERE t0e.FID = t0.FID GROUP BY t0e.FID ) t1 WHERE 1 = 1 AND t0.FAPPLICATIONDATE >= '2024-04-01 00:00:00' AND t0.FAPPLICATIONORGID = 101542 DROP TABLE #TMP