É o seguinte, criei uma busca em SQL que deveria me retornar o maior valor de um campo do tipo INT no MySQL. Dai fiz a seguinte instrução SQL utilizando preparedStatement:
int cont = 0;
try{
setSql("SELECT MAX(colunast) AS MAXCOL FROM Est WHERE est=?");
ps = conn.prepareStatement(getSql());
ps.setString(1, getEst());
rs = ps.executeQuery();
while(rs.next){
cont = rs.getInt("MAXCOL");
}
}
catch(SQLException ex){
ex.printStackTrace();
}
Na minha base de dados tenho em torno de 4.000 registros e no campo ‘colunast’ valores crescentes, iniciando de 1. Beleza, quando executo essa instrução, ele só me retorna o valor 9! Os valores acima de 9, existentes na tabela (10,11,12…20,21,22…30,31,32…etc) não são capturados… alguem sabe o que pode estar acontecendo?
Rpz acho que não, tipo, o est é para filtrar as estações… ou seja, dentro de cada estação eu tenho os valores de colunast.
Testei aqui duas situações:
Estação com valor máximo de colunast = 8
Estação com valor máximo de colunast = 11
Ocorre que quando o valor é igual a 8 ele exibe tranquilamente, executa a query blza. Porém quando busco a estação com colunast = 11, ele só me retorna 9 das 11…
Sacou o drama?
seu select tava certo
a unica coisa errada é que vc botou
cont = rs.getInt(“MAXCOL”);
e pelo que vi MAXCOL era o alias da sua tabela e não o campo que vc tinha que pega o valor
ta certo o primeiro select la
Hummm como q eu iria obter o valor máximo então? Em que variável eu poderia armazenar para, por exemplo, trabalhr em cima de uma rotina de FOR ou WHILE?
Minha idéia era pegar o valor máximo, armazenar em uma variável e jogar num for: for(i=0;i<cont;i++)
Sacou?