MS-ACCESS SQL视图中查询语句报错3075的原因及修改方法咨询
MS Access SQL 触发 Error 3075 的原因及修改方案
报错现象
运行目标SQL代码时,MS Access弹出语法报错:
in query expression . (Error 3075)
代码无法运行的核心问题
- 分组关键字拼写违规:Access SQL 不识别带下划线的
GROUP_BY写法,标准分组关键字为GROUP BY - 分组规则不符合Access的严格校验逻辑:Access要求SELECT子句中所有不参与聚合计算的字段,必须完整出现在GROUP BY的分组字段列表中。原代码仅按
Pno分组,但SELECT语句中输出了Pname、Dname两个非聚合字段,无法通过引擎校验 - 非法字符残留:原代码中大于号使用了HTML实体转义形式
>,不属于SQL语法的合法字符 - 字段归属歧义:多表关联场景下,
Pno字段没有明确标注所属表别名,容易触发引擎识别失败
修改后可正常运行的代码
SELECT P.Pname, D.Dname, COUNT(WO.Essn) AS WorkPersonCount, SUM(WO.Hours) AS TotalHours FROM PROJECT AS P, WORKS_ON AS WO, DEPARTMENT AS D WHERE P.Dnum = D.Dnumber AND P.Pnumber = WO.Pno GROUP BY P.Pnumber, P.Pname, D.Dname HAVING COUNT(WO.Essn) > 1;
关键调整说明
- 替换错误的
GROUP_BY为标准语法GROUP BY - 补全GROUP BY的分组字段列表,覆盖所有非聚合的输出字段,适配Access的严格分组校验规则
- 将HTML转义的
>替换为实际的比较运算符> - 给所有SELECT中的字段标注所属表别名,消除多表查询下的字段识别歧义
- 给聚合计算的两列添加明确别名,避免生成无意义的默认列名
内容的提问来源于stack exchange,提问作者maradona
相关产品推荐
相关产品推荐

