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

如何用SQL获取同一零件在各门店的最大采购日期

查询零件全局最大采购日期并关联所有门店

需求:针对指定零件编号,获取该零件在任意门店的最大采购日期,并将这个日期返回给所有门店,无论该门店是否有该零件的有效采购记录(如日期为null的情况)。

示例输入数据

partdateloc
1238/1/2022store 1
1238/2/2022store 1
123nullstore 2
1238/3/2022store 3

预期结果

partdateLoc
1238/3/2022store 1
1238/3/2022store 2
1238/3/2022store 3

解决方案(SQL)

方法1:窗口函数(适用于PostgreSQL、MySQL 8+、SQL Server等支持窗口函数的数据库)

SELECT DISTINCT
    part,
    MAX(date) OVER (PARTITION BY part) AS max_purchase_date,
    loc
FROM your_table_name
WHERE part = '123'; -- 指定目标零件编号

方法2:子查询关联(兼容低版本数据库)

SELECT
    t.part,
    global_max.max_date AS max_purchase_date,
    t.loc
FROM your_table_name t
CROSS JOIN (
    SELECT MAX(date) AS max_date
    FROM your_table_name
    WHERE part = '123'
) global_max
WHERE t.part = '123'
GROUP BY t.part, global_max.max_date, t.loc;

说明

  • 窗口函数MAX(date) OVER (PARTITION BY part)直接计算当前零件的全局最大采购日期,无需额外关联,简洁高效。
  • 子查询方法通过CROSS JOIN将全局最大值与每个门店记录绑定,确保即使门店自身无有效采购日期(date为null),也能返回零件的全局最大采购日期。
  • MAX()函数会自动忽略null值,仅从有效日期中计算最大值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:45:37