我有一个案例,我必须得到所有下拉元素的总和。我能够单独实现它。以下是用于个人选择的代码。
<%@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+"'");
我想将它放在一个语句中,并且我希望当我选择全部时输出以表格格式显示。
由于
答案 0 :(得分: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
会给你一个错误。
答案 1 :(得分:0)
我相信您需要调整查询以撤回类型列,并包含一个分组依据。 这将在结果集中为您提供多行。 您需要以编程方式根据需要调整IN子句中的内容。
SELECT SUM(Update_Count),输入FROM Scope1,其中输入IN('All','Updates','Multibases','DAIS','Acds','Legis','LegAll')和Specialist ='b' 按类别分组;