如何使用 JDBC 打印 SUM 和 AVG SQL 值?
Posted
技术标签:
【中文标题】如何使用 JDBC 打印 SUM 和 AVG SQL 值?【英文标题】:How to print SUM, and AVG SQL values with JDBC? 【发布时间】:2011-04-16 15:55:03 【问题描述】:好的,我正在尝试使用 JDBC 打印 SUM 和 AVG 函数的结果。所以基本上,它不起作用。我做错了什么?
<table border="1">
<tr><th>Total Homes Sold</th><th>Total Sales Amount</th><th>Averages Price Per Home</th></tr>
<% rset = stmt.executeQuery("SELECT COUNT(home_ID) FROM home");%>
<% rset1 = stmt.executeQuery("SELECT SUM(purchase_Price) FROM home");%>
<% rset2 = stmt.executeQuery("SELECT AVG(purchase_Price) FROM home");%>
<tr>
<td><%= rset.getString(1) %></td>
<td><%= rset1.getString(1) %></td>
<td><%= rset2.getString(1) %></td>
</tr>
</table>
【问题讨论】:
“不工作”是什么意思?没有值显示?错误?例外? (顺便说一句,您只需一次选择就可以完成这三个查询) 是的,我收到一条错误消息,指出:root cause javax.servlet.ServletException: java.sql.SQLException: ResultSet is closed 另外,我怎么能把它放在一个语句中? 【参考方案1】:主要问题是你需要在结果集上调用next()(在executeQuery()之后)来检索结果集的第一行(甚至虽然只有一行)。
如果你不这样做,没有可用的行并且调用 getString() 会导致“ResultSet is closed”错误。
【讨论】:
好的,所以我合并了:尝试做:
<tr>
<% rset = stmt.executeQuery("SELECT COUNT(home_ID) FROM home");%>
<td><%= rset.getString(1) %></td>
<% rset = stmt.executeQuery("SELECT SUM(purchase_Price) FROM home");%>
<td><%= rset.getString(1) %></td>
<% rset = stmt.executeQuery("SELECT AVG(purchase_Price) FROM home");%>
<td><%= rset.getString(1) %></td>
</tr>
或者更好:
<tr>
<% rset = stmt.executeQuery("SELECT COUNT(home_ID), SUM(purchase_Price), AVG(purchase_Price) FROM home");%>
<td><%= rset.getString(1) %></td>
<td><%= rset.getString(2) %></td>
<td><%= rset.getString(3) %></td>
</tr>
【讨论】:
好的,所以我合并了:以上是关于如何使用 JDBC 打印 SUM 和 AVG SQL 值?的主要内容,如果未能解决你的问题,请参考以下文章
即使字段的映射位于`text`和`keyword`类型上,也如何对sum和avg`进行聚合?
c语言编程有一个数组,内放10个学生的英语成绩,求出平均分,并且打印出高于平均分的英语成绩?