鼎捷E10批量更新历史销售订单付款条件(从客户档案获取)

仅更新销售订单中付款条件为空白的部分,已经存在付款条件的不做处理。

---取出销售订单中付款条件为空的部分,对应客户档案中的付款方式,将结果写入临时表
select *  into  ittest000001 from (
select a.Owner_Org_ROid,a.DOC_NO,a.PAYMENT_TERM_ID,g.PAYMENT_TERM_ID as up
from SALES_ORDER_DOC a 
left join PAYMENT_TERM b on a.PAYMENT_TERM_ID=b.PAYMENT_TERM_ID
left join SALES_CENTER c on a.Owner_Org_ROid=c.SALES_CENTER_ID
left join CUSTOMER d on a.CUSTOMER_ID =d.CUSTOMER_BUSINESS_ID
left join [USER] e on a.ApproveBy = e.USER_ID
left join  CUSTOMER_FI f on d.CUSTOMER_BUSINESS_ID=f.CUSTOMER_ID
inner join PAYMENT_TERM g on f.PAYMENT_TERM_ID=g.PAYMENT_TERM_ID
where b.PAYMENT_TERM_CODE is null ) as ddddd

---查询临时表
select * from ittest000001


---调整前查看修改影响范围
SELECT 
    a.Owner_Org_ROid,
    a.DOC_NO,
    a.PAYMENT_TERM_ID as 原PAYMENT_TERM_ID,
    b.up as 新PAYMENT_TERM_ID,
    CASE 
        WHEN a.PAYMENT_TERM_ID = b.up THEN '相同'
        ELSE '不同'
    END as 是否变化,
    c.SALES_CENTER_NAME,
    a.ApproveDate
FROM SALES_ORDER_DOC a
INNER JOIN ittest000001 b 
    ON a.Owner_Org_ROid = b.Owner_Org_ROid 
    AND a.DOC_NO = b.DOC_NO
LEFT JOIN SALES_CENTER c ON a.Owner_Org_ROid = c.SALES_CENTER_ID
WHERE b.up IS NOT NULL
ORDER BY c.SALES_CENTER_NAME, a.ApproveDate DESC, a.DOC_NO;


---更新销售订单,订单工厂ID=临时表工厂ID,订单号=临时表订单号的情况下将临时表中的付款条件写入销售订单
UPDATE a
SET a.PAYMENT_TERM_ID = b.up
FROM SALES_ORDER_DOC a
INNER JOIN ittest000001 b 
    ON a.Owner_Org_ROid = b.Owner_Org_ROid 
    AND a.DOC_NO = b.DOC_NO
WHERE b.up IS NOT NULL;  -- 可选条件,防止更新为 NULL
Language
中文(简体) 中文(繁體) 日本語 한국어 русский English français Deutsch español italiano বাংলা (ভারত) العربية ไทย Tiếng Việt Bahasa Melayu Filipino ελληνικά magyar dansk norsk íslenska Gaeilge