Files
GateDge2023_ljy/02.珠海市供水有限公司/ZHSW/STK_MisDelivery/sql/获取上游单据成本价作为参考单价.sql

125 lines
5.7 KiB
MySQL
Raw Normal View History

2024-04-10 10:39:04 +08:00
--v1.0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID
,(CASE t0e_lk.FSTABLENAME
WHEN 'T_STK_MISDELIVERYENTRY' THEN t1e.FPRICE --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD>
WHEN 'T_STK_INSTOCKENTRY' THEN t2e.FPRICE --<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -<EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD><EFBFBD>
WHEN 'T_STK_STKTRANSFERINENTRY1' THEN (CASE LTRIM(RTRIM(t3e.FReferPrice)) WHEN '' THEN 0 ELSE CONVERT(decimal(23,2) ,t3e.FReferPrice) END) --<EFBFBD>ֲ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> -<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ELSE 0
END) AS newReferPrice
,t0e.FReferPrice
,t0e.FReferAmount
,(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 '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>'
,t0e_lk.FSTABLENAME
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
LEFT JOIN T_STK_MISDELIVERYENTRY t1e
on (t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_MISDELIVERYENTRY') --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_MISDELIVERY t1 on t0e_lk.FSBILLID = t1.FID
LEFT JOIN T_STK_INSTOCKENTRY_F t2e
on (t2e.FID = t0e_lk.FSBILLID AND t2e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_INSTOCKENTRY') --<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_INSTOCK t2 on t0e_lk.FSBILLID = t2.FID
LEFT JOIN T_STK_STKTRANSFERINENTRY t3e
on (t3e.FID = t0e_lk.FSBILLID AND t3e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_STKTRANSFERINENTRY1') --<EFBFBD>ֲ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_STKTRANSFERIN t3 on t0e_lk.FSBILLID = t3.FID
WHERE t0.FSTOCKORGID = 101542
AND t0e_lk.FSTABLENAME IN ('T_STK_STKTRANSFERINENTRY1','T_STK_INSTOCKENTRY' ,'T_STK_MISDELIVERYENTRY')
--v2.0
SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID
,(CASE
WHEN t1.LinkId IS NOT NULL THEN t1.FPRICE --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>-<EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD>
WHEN t2.LinkId IS NOT NULL THEN t2.FPRICE --<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -<EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD><EFBFBD>
WHEN t3.LinkId IS NOT NULL THEN t3.FPRICE --<EFBFBD>ֲ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> -<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ELSE 0
END) AS newReferPrice
,t0e.FReferPrice
,t0e.FReferAmount
,(CASE WHEN t1.LinkId is not null THEN t1.FBILLNO
WHEN t2.LinkId is not null THEN t2.FBILLNO
WHEN t3.LinkId is not null THEN t3.FBILLNO
ELSE ''
END) AS '<EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>'
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_lk.FENTRYID = t0e.FENTRYID
LEFT JOIN (
SELECT t1.FBILLNO,t1e.FPRICE,t0e_lk.FENTRYID AS LinkId,t0e_lk.FSTABLENAME
FROM T_STK_MISDELIVERY t1 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_MISDELIVERYENTRY t1e on t1.FID = t1e.FID
INNER JOIN T_STK_MISDELIVERYENTRY_LK t0e_lk on t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_MISDELIVERYENTRY'
) t1 on t1.LinkId = t0e.FENTRYID
LEFT JOIN (
SELECT t2.FBILLNO,t2e.FPRICE,t0e_lk.FENTRYID AS LinkId,t0e_lk.FSTABLENAME
FROM T_STK_INSTOCK t2 --<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_INSTOCKENTRY_F t2e on t2e.FID = t2.FID
INNER JOIN T_STK_MISDELIVERYENTRY_LK t0e_lk on t2e.FID = t0e_lk.FSBILLID AND t2e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_INSTOCKENTRY'
) t2 on t2.LinkId = t0e.FENTRYID
LEFT JOIN (
SELECT t3.FBILLNO
,(CASE LTRIM(RTRIM(t3e.FReferPrice)) WHEN '' THEN 0 ELSE CONVERT(decimal(23,2) ,t3e.FReferPrice) END) AS 'FPRICE'
,t0e_lk.FENTRYID AS LinkId
,t0e_lk.FSTABLENAME
FROM T_STK_STKTRANSFERIN t3 --<EFBFBD>ֲ<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_STKTRANSFERINENTRY t3e on t3.FID = t3e.FID
INNER JOIN T_STK_MISDELIVERYENTRY_LK t0e_lk on t3e.FID = t0e_lk.FSBILLID AND t3e.FENTRYID = t0e_lk.FSID AND t0e_lk.FSTABLENAME = 'T_STK_STKTRANSFERINENTRY1'
) t3 on t3.LinkId = t0e.FENTRYID
WHERE t0.FSTOCKORGID = 101542
--v3.0
SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID
,t1e.FPRICE AS newReferPrice
,t0e.FReferPrice
,t0e.FReferAmount
,t0e_lk.FSTABLENAME
,t1.FBILLNO
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 AND t0e_lk.FSTABLENAME = 'T_STK_MISDELIVERYENTRY'
INNER JOIN T_STK_MISDELIVERYENTRY t1e
on (t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID) --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_MISDELIVERY t1 on t0e_lk.FSBILLID = t1.FID
WHERE t0.FSTOCKORGID = 101542
UNION ALL
SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID
,t1e.FPRICE AS newReferPrice
,t0e.FReferPrice
,t0e.FReferAmount
,t0e_lk.FSTABLENAME
,t1.FBILLNO
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 AND t0e_lk.FSTABLENAME = 'T_STK_INSTOCKENTRY'
INNER JOIN T_STK_INSTOCKENTRY_F t1e
on (t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID) --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_INSTOCK t1 on t0e_lk.FSBILLID = t1.FID
WHERE t0.FSTOCKORGID = 101542
UNION ALL
SELECT t0.FBILLNO,t0e.FID,t0e.FENTRYID
,(CASE LTRIM(RTRIM(t1e.FReferPrice)) WHEN '' THEN 0 ELSE CONVERT(decimal(23,2) ,t1e.FReferPrice) END) AS newReferPrice
,t0e.FReferPrice
,t0e.FReferAmount
,t0e_lk.FSTABLENAME
,t1.FBILLNO
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 AND t0e_lk.FSTABLENAME = 'T_STK_STKTRANSFERINENTRY1'
INNER JOIN T_STK_STKTRANSFERINENTRY t1e
on (t1e.FID = t0e_lk.FSBILLID AND t1e.FENTRYID = t0e_lk.FSID) --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><EFBFBD><EFBFBD>
INNER JOIN T_STK_STKTRANSFERIN t1 on t0e_lk.FSBILLID = t1.FID
WHERE t0.FSTOCKORGID = 101542
/***********<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD>ȹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯstart**********/
--SELECT t0.FNUMBER,t0.FMATERIALID,t0i.FINVPTYID
--FROM T_BD_MATERIAL t0
-- INNER JOIN T_BD_MATERIALINVPTY t0i
-- on t0.FMATERIALID = t0i.FMATERIALID
-- AND t0i.FINVPTYID = 10001
-- AND t0i.FISAFFECTCOST = 1
--WHERE t0.FDOCUMENTSTATUS = 'C' AND t0.FFORBIDSTATUS = 'A'
/***********<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD>ȹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯend**********/