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

MySQL:按日期从同列总和扣除值的资源计划工时查询

解决MySQL工时计算查询需求

没问题,我来帮你搞定这个查询。根据你的需求,我们需要按资源分组,计算「总计划工时减去下月到期任务的工时」,下面是具体的实现方案:

核心查询语句

假设你的表名为task_resources(记得替换成实际表名),SQL语句如下:

SELECT
    `Resource Name`,
    `Supervisor Name`,
    (SUM(`Planned Effort`) - SUM(
        CASE
            WHEN YEAR(`Planned Finish Date`) = YEAR(DATE_ADD(CURDATE(), INTERVAL 1 MONTH))
                 AND MONTH(`Planned Finish Date`) = MONTH(DATE_ADD(CURDATE(), INTERVAL 1 MONTH))
            THEN `Planned Effort`
            ELSE 0
        END
    )) AS `Planned Efforts`
FROM
    `task_resources`
GROUP BY
    `Resource Name`,
    `Supervisor Name`;

逻辑解释

  • 总工时计算:SUM(Planned Effort) 会累加当前资源所有任务的计划工时总和
  • 下月工时扣除:用CASE语句筛选出计划完成日期为下月的任务,把这些任务的工时加起来;如果任务不属于下月,就按0计算
  • 最终结果:总工时减去下月工时,得到你需要的Planned Efforts

自定义月份的扩展

如果不是要计算「当前下月」,而是指定某个月份(比如你例子里的截至2018年5月31日,需要扣除2018年6月的工时),可以把日期判断部分改成固定值:

SELECT
    `Resource Name`,
    `Supervisor Name`,
    (SUM(`Planned Effort`) - SUM(
        CASE
            WHEN YEAR(`Planned Finish Date`) = 2018
                 AND MONTH(`Planned Finish Date`) = 6
            THEN `Planned Effort`
            ELSE 0
        END
    )) AS `Planned Efforts`
FROM
    `task_resources`
GROUP BY
    `Resource Name`,
    `Supervisor Name`;

这样就能精准匹配你示例里的计算逻辑啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:29:42