Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Lain0x en 8 Diciembre 2011, 08:02 am



Título: Búsqueda Mysql + Java
Publicado por: Lain0x en 8 Diciembre 2011, 08:02 am
Hola, en una base de datos tengo almacenadas algunas notas, y el nombre de los alumnos.

La idea es poder extraer el nombre del alumno que posee la nota más alta, y porspuesto también extraer esa nota.

Este es mi código:

Código
  1. ConexionMYSQL3 mysql = new ConexionMYSQL3();
  2.            Connection c = mysql.Conectar();
  3.            String sSQL = "SELECT Nombre, NotasFinales FROM alumno WHERE NotasFinales = max(NotasFinales)";
  4.             try {
  5.            PreparedStatement pst = c.prepareStatement(sSQL);
  6.            ResultSet rs = pst.executeQuery();
  7.            if(rs.next())
  8.            {
  9.                String a1 =  rs.getString("Nombre");
  10.                int a2 = rs.getInt("NotasFinales");
  11.                t6.setText("El alumno con la nota mas alta es: "+a1+"\nY su nota es: "+a2);
  12.            }

Dice que hay un error en el código, pero no indica cual es exactamente.


Título: Re: Búsqueda Mysql + Java
Publicado por: Debci en 8 Diciembre 2011, 10:26 am
Sería mucho mas fácil poder ayudarte si nos das el error, compañero :P

Saludos


Título: Re: Búsqueda Mysql + Java
Publicado por: Lain0x en 8 Diciembre 2011, 17:27 pm
Es que se supone que en WHERE no se puede meter funciones como MIN y MAX.

El error es: Invalide use of group function.


Título: Re: Búsqueda Mysql + Java
Publicado por: Lain0x en 8 Diciembre 2011, 18:20 pm
Solucionado, por casualidad se me ocurrió lo siguiente:

Código:
String sSQL = "SELECT Nombre,NotasFinales FROM alumno ORDER BY NotasFinales DESC";

Extraigo nombre y notas finales de quien tiene la nota más alta sin necesidad de hacer un WHERE.