微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 HSQL 和 WHERE 语句时的问题

如何解决使用 HSQL 和 WHERE 语句时的问题

在 Hsql 中使用 WHERE 语句时遇到问题。当我按如下方式输入代码时,我没有收到任何错误

"SELECT Year,ProjectName,(cast(sum(Missed) as float)/(select cast(sum(d.Missed) as float) from Draft d)) as MissedPer from Draft group by ProjectName,Year order by ProjectName"

但是,当我在嵌套查询添加 WHERE 语句时,出现错误

"SELECT Year,(cast(sum(Missed) as float)/(select cast(sum(d.Missed) as float) from Draft d where Year = '19.12')) as MissedPer from Draft group by ProjectName,Year order by ProjectName"

错误如下:

线程“main”中的异常java.sql.sqlSyntaxErrorException:表达式不在聚合或GROUP BY列中:CAST((SUM(PUBLIC.DRAFT.MISSED)) AS DOUBLE)/(()) in statement [SELECT BranchNo,(cast(sum(Missed) as float)/(select cast(sum(d.Missed) as float) from Draft d where d.BranchNo = '19.12')) as MissedPer from Draft group by ProjectName,BranchNo order by项目名称]

我不知道如何进行这项工作,请帮忙。

解决方法

我检查了 HSQLDB 2.5.1 版,查询返回结果:

create table draft (year varchar(10),projectname varchar (10),missed int);
insert into draft values '19.10','p alpha',10
insert into draft values '19.11',12
insert into draft values '19.12',3


YEAR  PROJECTNAME MISSEDPER          
----- ----------- ------------------ 
19.10 p alpha     3.3333333333333335 
19.11 p alpha     4.0                
19.12 p alpha     1.0    

        

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。