Как напечатать значения SUM и AVG SQL с помощью JDBC? - PullRequest
0 голосов
/ 16 апреля 2011

Хорошо, я пытаюсь распечатать результаты функции SUM и AVG, используя JDBC.Так что в принципе это не работает.Что я делаю не так?

   <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>

Ответы [ 2 ]

3 голосов
/ 16 апреля 2011

Основная проблема заключается в том, что вам нужно вызвать next () для набора результатов (после executeQuery () ), чтобы получить первую строку набора результатов (даже если естьтолько одна строка).

Если вы этого не сделаете, строка недоступна, и вызов getString () вызывает ошибку "ResultSet is closed".

1 голос
/ 16 апреля 2011

Попробуйте сделать:

   <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...