刷数技巧
-- 更新bs_quotation_base表的decision_time字段
UPDATE bs_quotation_base
SET decision_time = CASE
-- 决策类型为决策会决策(decision_type=10)
WHEN decision_type = 10 THEN (
COALESCE(
-- 优先取bs_quotation_meeting_result_log表中通过状态的最大日期
(SELECT MAX(update_time)
FROM bs_quotation_meeting_result_log m
WHERE m.quotation_no = bs_quotation_base.quotation_no
AND m.result_type = 1),
-- 如果没有,则取bs_decision_inventory表的最大修改日期
(SELECT MAX(update_time)
FROM bs_decision_inventory
WHERE business_no = bs_quotation_base.quotation_no),
-- 如果还是没有,则取单据的最后更新时间
update_time
)
)
-- 决策类型为战区决策(decision_type=20)
WHEN decision_type = 20 THEN (
COALESCE(
-- 取k2_log表中通过状态的最大回传日期
(SELECT MAX(createtime)
FROM k2_log
WHERE BOID = bs_quotation_base.quotation_no
AND OPE_TYPE = 4),
-- 如果为空,则取单据的最后更新时间
update_time
)
)
-- 其他情况,直接取单据的最后更新时间
ELSE update_time
END
WHERE status = '3' and is_del = 0;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小仓鼠!
评论






