Select sem duplicar registros!

3 respostas
R
protected static List selectCpfAfiliado()throws SQLException{
        SQLServerConnection servConn = new SQLServerConnection();
        List resultado = new ArrayList();      
        String query="";
        try{
           query = "SELECT count(valor_string) qtde_registros, valor_string FROM"+
                    " retail..organizacao_cadastro_campo_extra WHERE id_campo=23 GROUP BY valor_string ORDER BY valor_string;";              
           ResultSet rs = servConn.dataLoad(query);
            if(!servConn.isEmptySet()){
               
                for(int i=0; i<servConn.getNRows()-1; i++){
                     rs.next();
                   if (Util.parseInt(rs.getString("qtde_registros"))>1){
                	  OrganizacaoCompleta organizacaoCompleta = new OrganizacaoCompleta();
                      organizacaoCompleta.setQtde_registros(rs.getString("qtde_registros"));
                      organizacaoCompleta.setValor_string(rs.getString("valor_string"));
                      resultado.add(organizacaoCompleta); 
                      LogSis.logar(LogSis.LOG4J_INFO_LEVEL,"cpf "+(rs.getString("valor_string"))+"cadastrado "+(rs.getString("qtde_registros"))+" vezes.");
                   }
                }
            }
            return resultado;
        }finally{
            servConn.closeConnection();
        }
    }

Efetuo um select que retorna a quantidade de registros com mesmo valor e os respectivos valores destes registros.
Depois fora do select eu crio uma confição IF para carregar na lista somente registros que estejam duplicados... o problema é que fica lento demais!!
Alguem sabe oque preciso fazer pra resolver o problema?
Desde já Obrigado!!

Meu select precisa carregar valores que estejam duplicados no banco de dados!!

Banco SQL Server

Rodrigo.

3 Respostas

F

select entidade from Tabela
where (select count(entidade) from Tabela
where entidade = entidade) > 1

R

Era pra ser dessa forma ou fiz errado? Não deu certo!

SELECT count(valor_string) qtde_registros, valor_string FROM retail..organizacao_cadastro_campo_extra WHERE id_campo=23 FROM qtde_registros WHERE (qtde_registros = qtde_registros)>1 
GROUP BY valor_string ORDER BY valor_string;
R

Consegui!

query = "SELECT b.qtde_registros, b.valor_string FROM (SELECT COUNT(valor_string) as qtde_registros, " + "valor_string FROM retail..organizacao_campo_extra WHERE id_campo=23 GROUP BY valor_string) as b "+ "WHERE (b.qtde_registros > 1);";

Obrigado!

Criado 1 de fevereiro de 2007
Ultima resposta 2 de fev. de 2007
Respostas 3
Participantes 2