Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/06/2010, 20:02
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 1 mes
Puntos: 2658
Respuesta: problemas con un select en mysql

Bien, he revisado la sintaxis que te propongo, y cumple exactamente con lo buscado.
Me explico:
La consulta interior genera una tabla virtual con todos los registros ordenados por fecha en forma descendente (del más reciente al más viejo). Esta tabla debe ir encerrada entre paréntesis para ser usada como tabla de origen de la consulta exterior; pero como la tabla resultado es lo que se denomina "tabla derivada", entonces debe ir llevar un alias, para ser usada en el FROM de la consulta exterior. De allí el alias "T1".
La consulta exterior simplemente toma ese resultado y agrupa por categoría.
Código MySQL:
Ver original
  1. SELECT tema, autor, fecha, categoria
  2.   (SELECT tema, autor, fecha, categoria
  3.   FROM temas
  4.   ORDER BY fecha DESC)  T1
  5. GROUP BY categoria;
La sentencia, tal y como está puesta no tiene errores de sintaxis. Ya la probé.
En ese sentido, hay sólo dos posibilidades:

1) Un error al copiar la sentencia. No puedo saberlo si no posteas una copia de lo que usaste.

2) Estás usando una versión muy vieja de MySQL. No puedo saberlo, si no me dices cuál versión de MySQL usas.

De todos modos, mirado con cuidado lo que pides al final, te propongo esta alternativa:
Código MySQL:
Ver original
  1. SELECT tema, autor, MAX(fecha), categoria
  2. FROM temas
  3. GROUP BY categoria
  4. ORDER BY categoria, tema, autor;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)