【发布时间】:2020-01-06 02:43:15
【问题描述】:
我有一个名为“事务”的表。它有 5 个属性:Date、Description、Amount、Clientname、Transaction_ID,其中 Transaction_ID 是主键。在示例数据中,客户名称“John Smith”有两笔交易,他每笔花费 100.10 和 56.56。 SQL Query 在 PHPMyAdmin 中返回 156.66 的预期结果,但 JDBC 似乎无法在 ResultSet 中识别它。
这是我的代码:
public void calculate_client_spending() throws SQLException {
ConnectionClass Databaseloader = new ConnectionClass();
Databaseloader.getConnection();
String sql = "SELECT SUM(Amount) AS total FROM Transactions WHERE Clientname = 'John Smith';";
ResultSet rs = Databaseloader.executeSQLRequestCommand(sql);
// rs.next();
// System.out.println(sum);
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
System.out.println(numberOfColumns);
// get the column names; column indexes start from 1
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
// Get the name of the column's table name
if ("total".equals(columnName)) {
System.out.println("Bingo!");
rs.last();
int count = rs.getRow();
rs.beforeFirst();
System.out.println(count);
while (rs.next()) {
Results_trasactions.setText("");
System.out.println("The total profits today are: " + rs.getString(1));
}
}
}
}
此查询在此示例中返回 null,但如果我执行 rs.getDouble(1),它将返回 0。知道这里可能存在什么问题吗?我能够使类似的 SUM 查询工作,例如所有客户端的 SUM 和 WHERE 子句似乎适用于我的主键,但是即使 SQL 在 PHPmyadmin 中有效,这个特定的 Query JDBC 似乎也不喜欢它这让我想相信这是一个 Java 问题而不是 SQL 问题。任何帮助将不胜感激。
【问题讨论】: