Sql 为什么获取错误ORA-00937
对于每名获得三架以上飞机认证的飞行员,请查找 援助和他或她所在飞机的最大巡航距离 认证的 我有四张桌子 FLIGHTSflno:varchar,ffrom:varchar,fto:varchar,距离:整数,出发:日期,到达:日期 飞机辅助设备:varchar,aname:varchar,Cruisingrange:number EMPLOYEESeid:varchar,Ename:varchar,Salary:number 认证eid:varchar,aid:varchar 我的问题是:Sql 为什么获取错误ORA-00937,sql,oracle,Sql,Oracle,对于每名获得三架以上飞机认证的飞行员,请查找 援助和他或她所在飞机的最大巡航距离 认证的 我有四张桌子 FLIGHTSflno:varchar,ffrom:varchar,fto:varchar,距离:整数,出发:日期,到达:日期 飞机辅助设备:varchar,aname:varchar,Cruisingrange:number EMPLOYEESeid:varchar,Ename:varchar,Salary:number 认证eid:varchar,aid:varchar 我的问题是: SE
SELECT aname, MAX(cruisingrange)
FROM Aircraft
WHERE aid IN(SELECT aid
FROM Certified
WHERE eid = (SELECT eid
FROM Certified
GROUP BY eid
HAVING COUNT(eid) > 3) )
;
但这会导致以下错误:
ORA 00937。00000-不是单个组功能
外部选择中缺少分组依据。select语句中的所有非聚合必须在group by中列出
SELECT aname, MAX(cruisingrange)
FROM Aircraft
WHERE aid IN(SELECT aid
FROM Certified
WHERE eid in (SELECT eid
FROM Certified
GROUP BY eid
HAVING COUNT(eid) > 3) )
GROUP BY aname
;
注意,在最内侧的“选择”按钮上有一个“分组依据”;但你似乎错过了
在最外面
我也同意您的意思是,如果您可能需要在vs=中将“WHERE EID=”更改为“WHERE EID in”tnx中的“WHERE EID in”,那么将有多个EID通过认证。只是换了。但是仍然得到同样的错误没有一个图片你张贴是必要的。你包含的所有内容都可以作为文本完成。若您的问题无法以其他方式证明,请参阅,以获取不发布图像的许多原因的列表。欢迎使用so!前,;您需要按aname分组您有一个聚合maxcruisingrange,而没有按aname分组。select中的所有非聚合字段必须在group by中列出。某些排除适用于see mySQL group by extensions。