Files
GateDge2023_ljy/02.珠海市供水有限公司/ZHSW/STK_MisDelivery/sql/更新其他出库单参考单价.sql
PastSaid b2419eec9c 2
2024-04-10 10:39:04 +08:00

54 lines
2.2 KiB
SQL

SELECT t0.FBILLNO,t0.FDATE,t0e.FID,t0e.FENTRYID,t0e.FMATERIALID
,(CASE t0e_lk.FSTABLENAME
WHEN 'T_STK_MISDELIVERYENTRY' THEN t1.FPRICE --其他出库(退货)-成本价
WHEN 'T_STK_INSTOCKENTRY' THEN t2.FPRICE --采购入库 -单价(不含税)
WHEN 'T_STK_STKTRANSFERINENTRY1' THEN t3.FPRICE --分步式调入 -参考单价
ELSE 0
END) AS newReferPrice
,t0e.FReferPrice
,t0e.FQTY
,t0e.FReferAmount
,t0e.FExplain
,(CASE t0e_lk.FSTABLENAME
WHEN 'T_STK_MISDELIVERYENTRY' THEN '源_其他出库单:'+ t1.FBILLNO
WHEN 'T_STK_INSTOCKENTRY' THEN '源_采购入库单:'+ t2.FBILLNO
WHEN 'T_STK_STKTRANSFERINENTRY1' THEN '源_分步式调入单:'+ t3.FBILLNO
ELSE ''
END) AS 'newExplain'
,t0e_lk.FSTABLENAME
INTO #TMP_HAS_PARENT_MIS
FROM T_STK_MISDELIVERY t0
INNER JOIN T_STK_MISDELIVERYENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_STK_MISDELIVERYENTRY_LK t0e_lk on t0e.FENTRYID = t0e_lk.FENTRYID
OUTER APPLY (
SELECT t1.FBILLNO,t1e.FPRICE
FROM T_STK_MISDELIVERY t1 --其他出库单
INNER JOIN T_STK_MISDELIVERYENTRY t1e on t1.FID = t1e.FID
AND (t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_MISDELIVERYENTRY')
) t1
OUTER APPLY (
SELECT t2.FBILLNO,t2e.FPRICE
FROM T_STK_INSTOCK t2 --采购入库单
INNER JOIN T_STK_INSTOCKENTRY_F t2e on t2.FID = t2e.FID
AND (t2e.FID = t0e_lk.FSBILLID AND t2e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_INSTOCKENTRY')
) t2
OUTER APPLY (
SELECT t3.FBILLNO,(CASE LTRIM(RTRIM(t3e.FReferPrice)) WHEN '' THEN 0 ELSE CONVERT(decimal(23,6) ,t3e.FReferPrice) END) AS FPRICE
FROM T_STK_STKTRANSFERIN t3 --分步式调入
INNER JOIN T_STK_STKTRANSFERINENTRY t3e on t3.FID = t3e.FID
AND (t3e.FID = t0e_lk.FSBILLID AND t3e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_STKTRANSFERINENTRY1')
) t3
WHERE 1 = 1
AND t0.FSTOCKORGID = 101542
AND t0e_lk.FSTABLENAME IN ('T_STK_STKTRANSFERINENTRY1','T_STK_INSTOCKENTRY' ,'T_STK_MISDELIVERYENTRY')
AND t0.FDATE >= '2023-11-01 00:00:00.000'
SELECT t1.*
--UPDATE t0e SET t0e.FReferPrice = t1.newReferPrice
--,t0e.FReferAmount = t1.newReferPrice * t0e.FQTY
--, t0e.FExplain = t1.newExplain
FROM T_STK_MISDELIVERYENTRY t0e
INNER JOIN #TMP_HAS_PARENT_MIS t1 on t0e.FENTRYID = t1.FENTRYID
WHERE t1.newReferPrice != 0
DROP TABLE #TMP_HAS_PARENT_MIS