Java中带sum的HSQL状态不起作用
我在java程序中使用嵌入式hsql数据库。 我想写一个hsql语句,如下所示:Java中带sum的HSQL状态不起作用,java,sum,hsqldb,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
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 \""+column+"\" FROM \""+table+"\"");
下一个:
statement.executeQuery("SELECT sum(POINTS) FROM \""+table+"\"");
java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: POINTS
下一次尝试,应该永远不会奏效,但只适用于您:-)
如果我试试这个:
String column = "Points";
statement.executeQuery("SELECT sum(\""+column+"\") FROM \""+table+"\"");
java.sql.SQLException: Column not found: Points
statement.executeQuery("SELECT \""+column+"\" FROM \""+table+"\"");
运行良好
只是想告诉你我的列存在于我的表中
本声明:
SELECT sum("Points") as test FROM "MyTable"
在SQuirrel客户端版本3.7中运行
你知道我的问题吗 在SQuirrel中使用的相同语句应该也适用。这是与Java引用相同的语句:
statement.executeQuery("SELECT sum(\"Points\") FROM \"MyTable\"");
看起来您正在从程序和SQuirrel连接到不同的数据库。尝试在SQuirrel和您的程序中使用相同的数据库文件绝对路径。您不能同时连接,因此需要先关闭SQuirrel中的数据库,然后再从程序连接 这些是我的进口货
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"));
}
别名测试是关键。这不是问题所在。Squirrel在iam使用java-program连接到DB时关闭。问题是您没有连接到相同的数据库文件。问题不是这个!松鼠连接到同一数据库。我认为sum语句需要其他引号。我已经添加了Java等价于您所说的在松鼠中工作的语句感谢您的工作,但您的语句与此语句相同。executeQuery(“从\“+table+”\”中选择sum(\“”+column+“\”));java.sql.SQLException:Column not found:Points我尝试了你的语句得到了相同的异常OK,我得到了!我需要为列点编写别名。从“MyTable”中选择总和(\“Points\”)作为测试;问题不在于语句,而在于表_01.getInt(“点”)。将其更改为table_01.getInt(“TEST”),并且可以正常工作。有人知道为什么吗?这是因为
sum(“Points”)
不是名为“Points”
的列。