47 lines
1.2 KiB
SQL
47 lines
1.2 KiB
SQL
|
|
|
|
WITH #start AS (SELECT 1 AS 'A')
|
|
,#行转列 AS (
|
|
SELECT T.*
|
|
FROM (
|
|
SELECT t0.FBILLNO,t0.FID,tt.合同金额,t0p.FRECADVANCERATE,t0p.F_CYG_TEXT
|
|
FROM 销售合同_20240523 tt
|
|
INNER JOIN T_CRM_CONTRACT t0 on t0.FBILLNO = tt.单据编号
|
|
INNER JOIN T_CRM_CONTRACTPLAN t0p on t0.FID = t0p.FID
|
|
) t0
|
|
PIVOT
|
|
(
|
|
SUM(t0.FRECADVANCERATE)
|
|
FOR
|
|
t0.f_CYG_TEXT IN ([预付],[发货],[到货],[验收],[质保])
|
|
) AS T
|
|
)
|
|
,#列转行 AS (
|
|
SELECT *,upvt.比例 * upvt.[合同金额] /100 AS '比例金额'
|
|
FROM (
|
|
SELECT
|
|
tt.单据编号
|
|
,t0.FID
|
|
,tt.[合同金额]
|
|
,tt.[预付款] AS [预付]
|
|
,tt.[发货款] AS [发货]
|
|
,tt.[到货款] AS [到货]
|
|
,tt.[验收款] AS [验收]
|
|
,tt.[质保金] AS [质保]
|
|
FROM 销售合同_202406181021 tt
|
|
INNER JOIN T_CRM_CONTRACT t0 on tt.单据编号 = t0.FBILLNO
|
|
) t0
|
|
UNPIVOT (比例 FOR 节点 IN ([预付],[发货],[到货],[验收],t0.[质保])) upvt
|
|
)
|
|
,#最终 AS (
|
|
SELECT tt.*
|
|
,t0p.FRECADVANCERATE,t0p.FRECADVANCEAMOUNT,t0p.FENTRYID
|
|
FROM #列转行 tt
|
|
INNER JOIN T_CRM_CONTRACTPLAN t0p on tt.FID = t0p.FID AND t0p.F_CYG_TEXT = tt.节点
|
|
)
|
|
SELECT * FROM #最终
|
|
--UPDATE t0p SET t0p.FRECADVANCERATE = tt.比例
|
|
-- ,t0p.FRECADVANCEAMOUNT = tt.比例金额
|
|
--FROM T_CRM_CONTRACTPLAN t0p
|
|
-- INNER JOIN #最终 tt on tt.FENTRYID = t0p.FENTRYID
|
|
--WHERE tt.FENTRYID = t0p.FENTRYID |