2

(mysqlを使用して)テーブルで、私の列の1つ(つまり、色)は次のようになります:

|Color|
======
|Red  |
|Blue |
|Green|
|Red  |
|Green|
|Green|
|Red  |
|Red  |

現在のjspページでjdbc接続を確立した後:円グラフで値を表示しようとしています(jscriptで書かれており、mysqlから値を入力します)のように:

|Color|no. of Times|
====================
|Red  |   4        |
|Blue |   1        |
|Green|   3        |

購入 グラフに値を入れることができません (コードに問題があると思います):

<%
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/apps","root","root");
Statement stmt = con.createStatement();
String sql2="select distinct(color) as COLOR from user_management order by device;";
ResultSet rs2 = stmt.executeQuery(sql2);
String s = rs2.getString("color");
while(rs2.next()){
    String device = rs2.getString("color");
    List<String> list=new ArrayList<String>();
    list.add(device);
    }
// I guess here will be some code for device value in String, say "s" 

String sql1 = "select count(case when color='"+s+"' then 1 end) as COLOR from user_management";
ResultSet rs1 = stmt.executeQuery(sql1);
System.out.println(sql1);
%>

次に、結果セットを円グラフ表に入れます

<table id="chartData">
  <% while(rs2.next()){ %>
  <% while(rs1.next()){ %>
    <tr>
      <th>DEVICE</th><th>NUMBER</th>
     </tr>

    <tr style="color: #0DA068">
      <td><%= rs2.getString("device")%></td><td><%= rs1.getString(1)%></td>
    </tr>

   <% }     
   %>
   <% }     
   %>
 </table>

チャートの列の値を取得する方法を入力します。色の変化が同時に起こります。

4

1 に答える 1

1

使用GROUP BY

SELECT Color, count(*) AS times FROM colors GROUP BY Color;
于 2012-08-16T10:36:31.277 に答える