Tenho uma tabela chamada grupos onde eu tenho todas as informações dos grupos de alunos que usam meu sistema. Tenho outras tabelas onde eu tenho um valor e o nome de qual grupo inseriu aquele valor. O que tenho que fazer é pegar o 1º grupo e somar todos os valores que aquele grupo inseriu e ir fazendo isso grupo a grupo. Segue abaixo um exemplo:
Fiz o seguinte código para fazer isso:
public void Lucro(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conexao = conn.conectar();
Statement stmt = conexao.createStatement();
ResultSet rs= stmt.executeQuery("Select nomeempresa from grupo;");
while (rs.next()) {
cont++;
}
grupo = new String[cont];
RT = new float[cont];
ResultSet rs2= stmt.executeQuery("Select nomeempresa from grupo;");
while (rs2.next()) {
grupo[cont2]=rs2.getString("nomeempresa");
cont2++;
}
while(cont3<cont){
ResultSet rs3 = stmt.executeQuery("Select grupo,valor,qtd from pedidoescolhido where grupo='"+grupo[cont3]+"';");
while(rs3.next()){
valor=rs3.getFloat("valor");
qtd=rs3.getInt("qtd");
RT[cont3]=RT[cont3]+(valor*qtd);
}
ResultSet rs4 = stmt.executeQuery("Select sum(valortotal) as soma from custovariavel where grupo='"+grupo[cont3]+"';");
while(rs4.next()){
somaCVT=rs4.getFloat("soma");
RT[cont3]=RT[cont3]-somaCVT;
}
ResultSet rs5 = stmt.executeQuery("Select sum(valor) as soma from custofixo where grupo='"+grupo[cont3]+"';");
ResultSet rs6 = stmt.executeQuery("Select areacomp,custom2 from grupo where nomeempresa='"+grupo[cont3]+"';");
while(rs6.next()){
areacomp=rs6.getFloat("areacomp");
cm2=rs6.getFloat("custom2");
}
while(rs5.next()){
somaCVT=rs5.getFloat("soma");
RT[cont3]=RT[cont3]-(somaCFT+(areacomp*cm2));
}
System.out.println("Valor RT: "+RT[cont3]);
cont3++;
}
rs.close();
rs2.close();
stmt.close();
conexao.close();
}
catch(Exception e){
e.printStackTrace();
}
}
O problema é que quando ele vai executar os resultsets que estão dentro do while pela segunda vez, ele fala que está fechado. O que tenho que fazer??