2

すべてのドロップダウン要素の合計を取得する必要がある場合があります。私は個人的にそれを達成することができます。以下は、個々の選択で機能するコードです。

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>JSP Page</title>  
</head>  
<body><form name="Reports" method="post" action="Reports.jsp"><table><tr><td>  
    Select user:<select name="user" id="user">  
        <option value="">Select User</option>  
        <option value="Rakesh">Rakesh</option>  
        <option value="Hari">Hari</option>  
    </select></td><td>  
    Select Type:<select name="type" id="type">  
        <option value="'Updates','Multibases','DAIS','Acds','Legis','LegAll'">All</option>  
        <option value="Updates">Updates</option>    
        <option value="Multibases">Multibases</option>  
        <option value="DAIS">DAIS</option>  
        <option value="Acds">Admin Codes</option>  
        <option value="Legis">Legis</option>  
        <option value="LegAll">Legis-All</option>  
            </select></td>  
            <td><input type="submit" value="Generate" id="sub1" name="sub1"></td></tr>  
    </table> </form>   </body>  

そしてjspは以下です

<%--   
Document   : Reports  
Created on : Oct 25, 2012, 4:53:23 PM  
Author     : u0138039  
--%>  

<%@page contentType="text/html" pageEncoding="UTF-8"%>  
<%@include file="DBCon.jsp" %>  
<!DOCTYPE html>  
<html>  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  

</head>  
<body><table>  
    <%  

    String[] a=request.getParameterValues("type");  
    String b=request.getParameter("user");  
    try{  
        ps=con.prepareStatement("Select * from Scope1");  

        ps=con.prepareStatement("SELECT SUM(Update_Count) FROM Scope1 where type ='"+a+"' and Specialist='"+b+"'");  
        rs=ps.executeQuery();  
        while(rs.next())  
                           {%>  
                           <tr>  
                               <td><%=a%>:</td><td>  
                               <%=rs.getString(1)%>  
                               </td></tr>  
      <% }  

                   }  
    catch(Exception e)  
    {  
        out.println(e);  
}  
%>  


ドロップダウンからすべての値を取得するには、以下のSQLコードを使用します

SELECT SUM(Update_Count) FROM Scope1 where type IN ('All','Updates','Multibases','DAIS','Acds','Legis','LegAll') and Specialist='b';

個別に取得するには、以下のコードを使用します

 ps=con.prepareStatement("SELECT SUM(Update_Count) FROM Scope1 where type IN ('"+a+"') and Specialist='"+b+"'");

これを単一のステートメントにしたいのですが、すべてを選択したときに出力を表形式で表示したいです。

ありがとう

4

2 に答える 2

1

私が見る1つの問題は、このステートメントにあります

ps=con.prepareStatement("SELECT SUM(Update_Count) FROM Scope1 
where type ='"+a+"' and Specialist='"+b+"'");

aは配列型であり、上記のSQLステートメントでそれを割り当てると、a配列インデックスなしで言及したためです。したがって、この sql ステートメントは失敗しているに違いありません。

String[] a=request.getParameterValues("type"); 

編集

私は別の問題を見ることができました

<%=rs.getString(1)%>  

あなたが使用する必要があります

<%=rs.getInt(1)%>  

SELECT SUM(Update_Count)番号を返すためgetString、エラーが発生します。

于 2012-10-29T18:33:06.607 に答える
0

type 列を引き戻し、group by を含めるようにクエリを調整する必要があると思います。これにより、結果セットに複数の行が表示されます。必要に応じて、IN 句の内容をプログラムで調整する必要があります。

SUM(Update_Count) を選択し、FROM Scope1 と入力します。ここで、IN ('All','Updates','Multibases','DAIS','Acds','Legis','LegAll') を入力し、Specialist='b' をタイプ別にグループ化します。 ;

于 2012-10-29T13:39:11.027 に答える