1
resposta

Comparar linhas de resultado de uma consulta sql

@SuppressWarnings({ "rawtypes", "unchecked" })
    public void consultaBanco() {
        try {
            Map <Integer, HashMap<String,String>> dados = new HashMap<Integer,HashMap<String,String>>();
            Integer KeyFila = 0;


            String sql = "SELECT DISTINCT call_id AS ID, call_date AS DATA, call_queue AS FILAS, call_lastevent AS EVENTO, call_from,"
                    + " CASE WHEN SUBSTR(call_from, 1,2) = '55'  THEN REPLACE(REPLACE(REPLACE(SUBSTR(call_from, 3),'(',''),')',''),'-','') "
                    + " ELSE REPLACE(REPLACE(REPLACE(call_from, '(',''),')',''),'-','') " + " END AS FONE" + " "
                    + " FROM report_queues" + " " + " WHERE (call_queue = 'ADposvenda' OR call_queue LIKE 'CO%') AND CHAR_LENGTH(call_from) > 4" + " "
                    + " AND call_lastevent = 'queuetimeout' " + " " + " AND call_date_YMD =  '" + this.data + "'";

                this.resultset = this.statement.executeQuery(sql);
                this.statement = this.connection.createStatement();
                while (this.resultset.next()) {

                    KeyFila++;

                    Map <String, String> consulta = new HashMap<String,String>();
                    consulta.put("Data", this.resultset.getString("DATA"));
                    consulta.put("Filas", this.resultset.getString("FILAS"));
                    consulta.put("Evento", this.resultset.getString("EVENTO"));
                    consulta.put("Fone", this.resultset.getString("FONE"));

                    dados.put(KeyFila, (HashMap<String, String>) consulta);

                }

                this.objetoQueue = (HashMap)dados;                
                System.out.println("Conteúdo do ObjetoQueue: " + objetoQueue);
                System.out.println();
                System.out.println("------------------- Consutla ao banco de dados Voice Mail ---------------------");
                System.out.println();

                try {

                    Map <Integer, HashMap<String,String>> dadosVoice = new HashMap<Integer,HashMap<String,String>>();
                    Integer KeyFilaVoice = 0;

                    String query = "SELECT message_date, message_From, message_queue, message_file FROM voice_mail"
                            + " WHERE (message_queue = 'ADposvenda' OR message_queue LIKE 'CO%')"
                            + " AND CHAR_LENGTH(message_from) > 4" + " AND message_date = '" + this.dataHora + "'";

                    this.resultset = this.statement.executeQuery(query);
                    this.statement = this.connection.createStatement();
                    while (this.resultset.next()) {

                        KeyFilaVoice++;

                        Map <String,String> consultaVoice = new HashMap<String,String>();
                        consultaVoice.put("DataVoice", this.resultset.getString("message_date"));
                        consultaVoice.put("FilasVoice", this.resultset.getString("message_queue"));
                        consultaVoice.put("EventoVoice", this.resultset.getString("message_file"));
                        consultaVoice.put("FoneVoice",this.resultset.getString("message_From"));

                        dadosVoice.put(KeyFilaVoice,(HashMap<String, String>) consultaVoice);

                    }    

                    this.objetoVoice = (HashMap)dadosVoice;
                    System.out.println("Conteúdo do ObjetoVoice: " + dadosVoice);


                } catch (Exception e) {
                    e.printStackTrace();
                }

        } catch (Exception e) {
            e.printStackTrace();

        }
    }

Pessoal preciso de ajuda com um projeto que estou fazendo em java, tenho um método que realiza 02 consultas ao banco em tabelas diferentes, preciso comparar os campos de uma consulta com a outra, preciso também criar uma condição onde se os campos tiverem o mesmo resultado eu chamo um outro método qualquer, senão eu simplesmente exibo uma mensagem de que não foi possível chamar o método porque os campos não são iguais. Para a recuperação da consulta SQL eu criei um Map de string e depois criei um interação para armazenar um objeto na memoria com todas as linhas da consulta, basicamente precisava apenas criar um for que percorresse esse objeto comparando com o outro objeto e assim criar a condição. Acho que é isso, alguém pode me dar uma luz??? Se tiver uma forma de enxugar esse código também é bem vindo!

1 resposta
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!