Microsoft Access:构建近三年月度收入对比查询需求
在Microsoft Access中构建近三年月度收入对比查询的方法
假设你的LessonPayT表包含付款日期字段(如PayDate)和收入金额字段(如Amount),若字段名不同,替换为实际名称即可,以下两种方法可实现需求:
方法一:使用交叉表查询向导
- 打开Access,进入「创建」选项卡,点击「查询向导」,选择「交叉表查询向导」后确定
- 选择
LessonPayT作为数据源,点击下一步 - 行标题选择月份:添加
PayDate字段,在「字段选项」中选「月」,修改显示名称为「月份」,点击下一步 - 列标题选择年份:添加
PayDate字段,在「字段选项」中选「年」,点击下一步 - 交叉点选收入总和:选择
Amount字段,「函数」选「Sum」,点击下一步 - 命名查询(如
MonthlyIncomeQ)后完成 - 过滤近三年数据:打开查询设计视图,在年份字段的「条件」行输入
>= Year(Date())-2,运行查询即可
方法二:手动编写SQL语句
直接切换到SQL视图,输入以下代码(替换字段/表名为实际名称):
TRANSFORM Sum(Nz(LessonPayT.Amount, 0)) AS 收入总和 SELECT Month(LessonPayT.PayDate) AS 月份排序, Format(LessonPayT.PayDate, "mm月") AS 月份 FROM LessonPayT WHERE Year(LessonPayT.PayDate) >= Year(Date()) - 2 GROUP BY Month(LessonPayT.PayDate), Format(LessonPayT.PayDate, "mm月") ORDER BY Month(LessonPayT.PayDate) PIVOT Year(LessonPayT.PayDate);
- 说明:
Nz(Amount, 0)用于将无收入月份的空值替换为0,避免显示NullWHERE Year(PayDate) >= Year(Date())-2筛选近三年数据(含当前年)PIVOT Year(PayDate)将年份转为列,实现同年份收入横向对比月份排序字段用于保证结果按1-12月顺序排列,可在查询视图中隐藏该字段
补充说明
- 若需查看年度总收入,可在查询中添加计算字段:
年度总收入: Sum([2022]+[2023]+[2024])(替换为实际近三年年份) - 若表中存在其他筛选条件(如特定课程类型),可在
WHERE子句中追加对应条件
内容的提问来源于stack exchange,提问作者melodist
相关产品推荐
相关产品推荐

