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

MS Access中EXTRACT()查询报语法错误,缺失何种运算符?

MS Access按年份统计签到次数的SQL语法问题

问题场景

在MS Access中有一张记录泳池会员签到信息的表tblCheckIn,需要按运营年份统计签到次数(统计每个年份对应的唯一ID数量),原编写的SQL语句如下:

SELECT 
  EXTRACT(YEAR FROM tblCheckIn.[CHECKINTIME]) AS Season,
  COUNT(tblCheckIn.[ID]) AS Visits
FROM tblCheckIn
GROUP BY (YEAR FROM tblCheckIn.[CHECKINTIME]);

执行时出现错误:Syntax error (missing operator) in query expression 'EXTRACT(YEAR FROM tblCheckIn.[CHECKINTIME])

问题原因

MS Access使用的Jet/ACE SQL语法不支持标准SQL的EXTRACT(YEAR FROM ...)函数,它有专属的Year()函数用于提取日期字段的年份。同时原GROUP BY子句的写法也不符合Access SQL的要求,必须与SELECT子句中的年份提取表达式保持一致。

修正后的SQL语句

SELECT 
  Year(tblCheckIn.[CHECKINTIME]) AS Season,
  COUNT(tblCheckIn.[ID]) AS Visits
FROM tblCheckIn
GROUP BY Year(tblCheckIn.[CHECKINTIME]);

如果需要统计唯一ID的数量(即去重后的签到人数,而非总签到次数),可以改用COUNT(DISTINCT tblCheckIn.[ID]):

SELECT 
  Year(tblCheckIn.[CHECKINTIME]) AS Season,
  COUNT(DISTINCT tblCheckIn.[ID]) AS UniqueVisits
FROM tblCheckIn
GROUP BY Year(tblCheckIn.[CHECKINTIME]);

内容的提问来源于stack exchange,提问作者Lei-Lonnie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:25:27