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

MS Access SQL查询需求:基于月份偏移量的3个月滚动求和

MS Access实现3个月滚动求和的SQL方案

核心逻辑

基于MonthOffset(即你所说的Column A)的数值范围筛选记录:对每条记录,计算其MonthOffset到MonthOffset-2之间所有记录的数值和,不管月份是否连续,缺失的月份因无对应记录会自动被排除在求和外。

实现代码

假设你的表名为SalesData,偏移量列是MonthOffset,需要求和的数值列是Amount,替换成你实际的表名和列名即可:

SELECT 
    main.MonthOffset,
    main.Amount,
    SUM(sub.Amount) AS Rolling3MonthSum
FROM 
    SalesData main
LEFT JOIN 
    SalesData sub ON sub.MonthOffset BETWEEN (main.MonthOffset - 2) AND main.MonthOffset
GROUP BY 
    main.MonthOffset, main.Amount
ORDER BY 
    main.MonthOffset;

代码说明

  1. 自连接筛选范围:通过自连接,让每条主表记录关联子表中偏移量在当前记录偏移量前2个月到当前月的所有记录
  2. 分组求和:按主表的MonthOffset和Amount分组,对子表的Amount求和得到滚动3个月的总和
  3. 处理缺失月份:如果某月份没有记录,子表中不会有对应行,求和时自然不会计入,完全符合你要求的“缺失月份不影响结果”的场景

比如你提到的例子:假设2022年9月的MonthOffset是-4,缺失的8月对应-5,那么求和范围是-4-2=-6到-4,只要这个区间内存在的记录数值总和是10,结果就会显示10,不管中间有没有缺失的月份。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 12:04:56