Problema com consulta

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

mude o select

SELECT G.NOMEGRUPO AS GRUPOS, SUM(V.VALOR) AS SOMATOTAL FROM GRUPO G, VALORES V WHERE G.NOMEGRUPO = V.NOMEGRUPO GROUP BY G.NOMEGRUPO

Certinho!! Valeu!!