Galera, sou novo aqui no fórum, fiz uma matéria esse semestre de introdução ao JAVA e como estou de bobeira aqui em casa resolvi brincar um pouco.
Começei a dois dias um programa aqui que calcula as notas pra minha faculdade, eu até que fiz alguma coisa pra quem não sabia nem como instalava o MySQL três dias atrás, mas eu estou travado aqui numa parte onde eu tenho um tabela no bando de dados, e ela possui resultados repetidos, e eu preciso excluir os resultados deixando somente os que foram adicionados mais recentemente, para isso eu fiz um contador no meu código pra saber (não consegui usar a função smalldatetime que eu vi por ai - não entra na minha cabeça), tá ai a parte que lê minha tabela (nada demais):
[code] public void adicionahistorico(String[] materias, int[] conceito, int[] creditos) throws SQLException {
for (int i = 0; i < creditos.length; i++) {
String sql = “insert into historico (creditos, materias, conceito, contador)”
+ “values (?,?,?,?)”;
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setInt(1, creditos[i]);
stmt.setString(2, materias[i]);
stmt.setInt(3, conceito[i]);
stmt.setInt(4, i);
stmt.execute();
stmt.close();
}
[/code]
Agora eu não sei qual statement eu tenho que passar pra conseguir remover as entradas repetidas. O que eu fiz foi assim:
public void cria_ca() throws SQLException {
remove_ca();
String sql = "create table ca select materias, creditos, max(conceito), max(contador) from historico group by materias";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.execute();
stmt.close();
leitura_ca();
}
Apesar de conseguir visualizar a tabela do jeito que eu quero, por algum motivo que eu não sei eu não consigo acessar os dados que preciso dela:
public void leitura_ca () throws SQLException {
String sql = "select * from ca";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
int creditos = Integer.parseInt(rs.getString("creditos"));
int conceito = Integer.parseInt(rs.getString("max(conceito)"));
int multiplicacao = creditos * conceito;
System.out.println(multiplicacao);
}
rs.close();
stmt.close();
}
}
O erro que dá é este:
12/04/2013 19:26:13 ufabc.forms.visual startActionPerformed
SEVERE: null
java.sql.SQLException: Column 'max(conceito)' not found.
Deve ser uma coisa muito idiota, mas eu estou desde as 8 da manhã varrendo o google e tentando de tudo no terminal do linux e não consigo de jeito nenhum.
Agradeço desde já pela ajuda!