You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术需求:将默认交货日期替换为对应订单最新实际交货日期

需求说明

现有一张包含以下字段的业务表:

  • 订单ID(Order ID)
  • 交货日期(Delivery Date)
  • 交货序列号(Delivery Sequence Number)
  • 记录更新日期时间(Record Update Date & Time)

业务规则

  • 产品在库待交付时,交货日期默认设为'1999-12-31',表示尚未安排交货计划;
  • 产品确定交货计划后,记录会更新为实际交货日期;
  • 每次修改记录时,系统自动插入新行并分配递增的交货序列号,同时记录本次更新的日期时间。

处理要求

将表中所有默认日期'1999-12-31'替换为对应订单的最新实际交货日期(即该订单中,在当前记录之前最后一次更新的非默认交货日期)。


解决方案(SQL实现)

利用窗口函数LAST_VALUE()结合条件筛选,按订单分组并按交货序列号排序(序列号递增代表记录更新顺序),实现默认日期的批量替换:

SELECT 
    "订单ID(Order id)",
    "交货日期(Delivery date)",
    "交货序列号(delivery sequence)",
    "记录更新时间(record update dttm)",
    CASE 
        WHEN "交货日期(Delivery date)" = '1999-12-31' THEN
            LAST_VALUE(CASE WHEN "交货日期(Delivery date)" != '1999-12-31' THEN "交货日期(Delivery date)" END)
                OVER (PARTITION BY "订单ID(Order id)" ORDER BY "交货序列号(delivery sequence)" ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
        ELSE "交货日期(Delivery date)"
    END AS "预期输出(expected output)"
FROM your_table_name;

代码说明

  • PARTITION BY "订单ID(Order id)":按订单独立处理,避免跨订单干扰;
  • ORDER BY "交货序列号(delivery sequence)":按系统分配的序列号排序,确保按记录的实际更新顺序获取有效日期;
  • LAST_VALUE(...):在当前行及之前的所有记录中,筛选出非默认值的交货日期,并取最后一个(即最新的有效交货日期);
  • CASE语句:判断当前交货日期是否为默认值,是则替换为最新有效日期,否则保留原数据。

示例数据与预期输出
订单ID(Order id)交货日期(Delivery date)交货序列号(delivery sequence)记录更新时间(record update dttm)预期输出(expected output)
1'2019-01-20'1'2019-01-10 10:00:00 AM''2019-01-20'
1'2019-01-21'2'2019-01-10 11:00:00 AM''2019-01-21'
1'1999-12-31'3'2019-01-11 13:00:00 AM''2019-01-21'
1'1999-12-31'4'2019-01-12 13:30:00 PM''2019-01-21'
1'2019-01-29'5'2019-01-13 09:00:00 AM''2019-01-29'
2'2019-04-30'1'2019-04-29 09:00:00 AM''2019-04-30'
2'2019-03-18'2'2019-04-30 11:00:00 AM''2019-03-18'
2'1999-12-31'3'2019-04-30 13:00:00 AM''2019-03-18'
2'2020-03-31'4'2019-05-01 13:30:00 PM''2020-03-31'
2'1999-12-31'5'2019-05-13 10:00:00 AM''2020-03-31'
2'1999-12-31'6'2019-05-13 10:00:00 AM''2020-03-31'
2'1999-12-31'7'2019-05-14 10:00:00 AM''2020-03-31'
3'2019-01-20'1'2019-01-20 10:00:00 AM''2019-01-20'
3'1999-12-31'2'2019-01-10 10:00:00 AM''2019-01-20'
3'2019-01-22'3'2019-01-10 11:00:00 AM''2019-01-22'

内容的提问来源于stack exchange,提问作者Ramesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 13:54:58