在Java中使用sum的HSQL Statenment不起作用

时间:2017-01-11 15:02:40

标签: java sum hsqldb

我在java程序中使用嵌入式hsql数据库。 我想写一个像这样的hsql语句:

statement.executeQuery("SELECT sum(Points) FROM Table");

起初我试过这个:

String column = "Points";   

statement.executeQuery("SELECT sum(\""+column+"\") FROM \""+table+"\"");
java.sql.SQLException: Column not found: Points

下一个:

statement.executeQuery("SELECT sum(POINTS) FROM \""+table+"\"");
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: POINTS

接下来尝试,永远不应该只为你而工作: - )

statement.executeQuery("SELECT sum(\'"+column+"\') FROM \""+table+"\"");
java.sql.SQLSyntaxErrorException: incompatible data type in operation

如果我尝试这个:

statement.executeQuery("SELECT \""+column+"\" FROM \""+table+"\"");

完美运行

只是为了告诉你我的专栏存在于我的表格中。

本声明:

SELECT sum("Points") as test FROM "MyTable"

在SQuirrel Client V3.7中运行

对我的问题有什么想法吗?

2 个答案:

答案 0 :(得分:0)

在SQuirrel中使用的相同声明应该有效。这与Java引用相同:

statement.executeQuery("SELECT sum(\"Points\") FROM \"MyTable\"");

看起来您正在从程序和SQuirrel连接到不同的数据库。尝试在SQuirrel和程序中使用与数据库文件相同的绝对路径。您无法同时连接,因此在从程序连接之前需要在SQuirrel中关闭数据库。

答案 1 :(得分:0)

这些是我的导入

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

此声明也未运行:

statement.executeQuery("SELECT sum(\"Points\") FROM \"MyTable\"");

可能是其他人的解决方案:

"SELECT sum(\"Punkte\") as TEST FROM \"Match_Stats\"");   
while(table_01.next()){
    players.get(i).setPoints(table_01.getInt("TEST"));
}

Alias TEST是关键。

相关问题