Olá, boa tarde. Há algum tempo estou quebrando a cabeça prá montar uma lógica. Alguém quer me ajudar a quebrar a cabeça ou resolver sem quebrar a cabeça (de uma forma fácil que eu não esteja visualizando)? É o seguinte: tenho estes dados numa tabela:
valor1 valor2
1 2
1 2
2 1
3 1
3 1
2 3
2 4
1 4
1 5
Pela lógica, se o valor2 não se repetir na linha seguinte, eu imprimo o valor2 da linha em questão. Se ele se repetir eu tenho que somar o valor2 com o valor1 de cada linha seguinte em que o valor se repete. Por exemplo, pelos números acima, a saída deveria ser: 3 (equivalente a valor2 da primeira linha + valor1 da segunda linha), 7 (equivalente ao valor2 da terceira linha + valor1 da quarta e quinta linha), 3 (equivalente ao valor2 da sexta linha - não se repate), 5 (equivalente ao valor2 da sétima linha + o valor1 da oitava linha) e 5 (equivalente ao valor2 da nona linha) - de forma que eu sempre comparo o valor2 de uma linha com o valor2 da linha seguinte para tomar uma decisão. Alguém pode me ajudar?
Grato, Carlos.
Mas por curiosidade, onde vc vai usar isso!
Tente explicar de novo pq eu naum entendi cuase nada depois da primeira frase após os dados! :? :?
Luiz_Aguiar
Coloque o código que vc já escreveu pra resolver o problema.
[]s
C
cmendes
é um serviço que um colega meu faz manualmente. onde os dados não se repetem ele pega o valor2. onde se repetem ele pega o valor2 da primeira linha e o valor1 das linhas subsequentes onde o valor2 continua se repetindo. amanhã eu postarei o que eu já fiz, pois está em outro pc, ok?
C
cmendes
Já tentei até este ponto. enquanto estava com os dados de tabela enviados anteriormente, funcionou. Mas depois que incluí mais dados prá teste, a lógica já não deu certo mais. Também não estou fazendo da melhor maneira né? Fiz assim simplesmente prá seguir um raciocício simplório que estava tendo no início.
publicstaticvoidmain(Stringargs[]){Doubles1;Doublet;Doublesoma=null;Connectioncon;Statementstmt;Stringquery="select valor1, valor2 from testapgm";try{Class.forName("oracle.jdbc.driver.OracleDriver");}catch(java.lang.ClassNotFoundExceptione){System.err.print("ClassNotFoundException: ");System.err.println(e.getMessage());}try{con=DriverManager.getConnection("jdbc:oracle:thin:@10.11.100.120:1521:ORCL","db_controle_aciaria","bombaim123");stmt=con.createStatement();ResultSetrs=stmt.executeQuery(query);//System.out.println("Teste Oracle");intcontador=0;List<Double>lr1=newArrayList<Double>();List<Double>manganes=newArrayList<Double>();while(rs.next()){s1=Double.parseDouble(rs.getString("valor2"));lr1.add(s1);t=Double.parseDouble(rs.getString("valor1"));manganes.add(t);}stmt.close();con.close();contador=0;if(lr1.get(0).equals(lr1.get(1))){soma=lr1.get(0);contador+=1;}else{System.out.println(lr1.get(0));}for(inti=1;i<lr1.size()-1;i++){if(i==1){if(lr1.get(1).equals(lr1.get(2))){soma=soma+manganes.get(1);}else{System.out.println(lr1.get(0)+manganes.get(1));}}if(i>1&lr1.get(i).equals(lr1.get(i+1))&contador==0){soma=soma+lr1.get(i)+manganes.get(1+i);contador=contador+1;}elseif(!lr1.get(i).equals(lr1.get(i+1))&i>1&contador==0){System.out.println(lr1.get(i));}elseif(i>1&lr1.get(i).equals(lr1.get(i+1))&contador>0){soma=soma+manganes.get(i);}if(!lr1.get(i).equals(lr1.get(i+1))&i>1&contador>0){System.out.println(soma);soma=0.0;contador=0;}if(lr1.size()==i+2){if(lr1.get(i).equals(lr1.get(i+1))){soma=soma+manganes.get(i+1);System.out.println(soma);}else{System.out.println(lr1.get(i+1));}}}}catch(SQLExceptionex){System.err.println("SQLException: "+ex.getMessage());}}