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

基于日期与数量匹配关联两张表的技术需求:计划量匹配聚合交付量

解决表A(计划)与表C(交付)的日期关联问题

我来帮你梳理并落地这个需求!核心逻辑就是先聚合交付量,再按数量匹配关联对应日期,下面分两种常见场景给你具体方案:

场景1:单日交付总量匹配计划量

如果你的需求是「某一天的总交付量刚好等于某条计划的数量」,可以按以下步骤实现:

先明确假设的表结构

  • 表A(计划表):date_plan(计划日期)、Q1(计划数量)
  • 表C(交付表):date_deliver(交付日期)、Q2(单条交付的数量)

SQL实现代码

-- 第一步:聚合表C的单日总交付量
WITH aggregated_deliver AS (
    SELECT 
        date_deliver,
        SUM(Q2) AS total_deliver
    FROM C
    GROUP BY date_deliver
),
-- 第二步:处理同一交付量对应多个日期的情况(这里取最早的交付日期)
ranked_deliver AS (
    SELECT 
        total_deliver,
        date_deliver,
        ROW_NUMBER() OVER (PARTITION BY total_deliver ORDER BY date_deliver ASC) AS rn
    FROM aggregated_deliver
)
-- 第三步:关联计划表与处理后的交付数据
SELECT 
    a.date_plan,
    a.Q1 AS plan_quantity,
    rd.date_deliver AS matched_deliver_date,
    rd.total_deliver AS deliver_quantity
FROM A a
JOIN ranked_deliver rd 
    ON a.Q1 = rd.total_deliver 
    AND rd.rn = 1; -- 只保留每个交付量对应的第一个日期

代码逻辑说明

  • aggregated_deliver:把表C按交付日期做汇总,得到每天的总交付量,这样我们能快速定位哪一天的交付总量符合计划数。
  • ranked_deliver:如果存在多个日期的交付总量都等于同一个计划数,用ROW_NUMBER()给这些日期排序,这里默认取最早的(如果要最晚的,把ASC改成DESC就行)。
  • 最后通过Q1 = total_deliver匹配数量,就能把对应的交付日期关联到计划上。

场景2:累计交付量达到计划量

如果你的需求是「累计到某一天的交付总量达到/超过计划数量」(比如分批交付、逐步完成计划的场景),需要用累计求和来实现:

SQL实现代码

-- 第一步:计算累计交付量
WITH cumulative_deliver AS (
    SELECT 
        date_deliver,
        SUM(SUM(Q2)) OVER (ORDER BY date_deliver ASC) AS cumulative_total
    FROM C
    GROUP BY date_deliver
)
-- 第二步:找到每个计划最早完成的交付日期
SELECT 
    a.date_plan,
    a.Q1 AS plan_quantity,
    MIN(cd.date_deliver) AS first_reach_date
FROM A a
JOIN cumulative_deliver cd 
    ON cd.cumulative_total >= a.Q1
GROUP BY a.date_plan, a.Q1;

代码逻辑说明

  • cumulative_deliver:先按日期汇总单日交付量,再用窗口函数SUM() OVER()计算从最早日期到当前日期的累计交付总量。
  • 最后通过cumulative_total >= a.Q1筛选出所有累计量达到计划数的日期,用MIN()取最早的那个日期关联到计划。

额外注意点

  • 如果需要严格匹配等于(不是大于等于),把场景2中的>=改成=即可。
  • 如果你的数据库不支持CTE(比如老版本MySQL),可以把CTE替换成子查询,逻辑完全一致。
  • 确保两张表的日期字段格式/类型一致,避免因类型不匹配导致关联错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:08:57