Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

MySQL (DISTINCT + ORDER BY)

Estas en el tema de MySQL (DISTINCT + ORDER BY) en el foro de Bases de Datos General en Foros del Web. Hola gente, queria saber cual es el problemita que estoy teniendo con este SELECT , funciona bien la consulta pero no el orden con el ...
  #1 (permalink)  
Antiguo 01/12/2004, 15:28
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Pregunta MySQL (DISTINCT + ORDER BY)

Hola gente, queria saber cual es el problemita que estoy teniendo con este SELECT, funciona bien la consulta pero no el orden con el que quiero que me devuelva los datos.

La tabla TRABAJOS es la siguiente
Código HTML:
trabajo_id                 cliente_id           categoria
    1                         1                      3
    2                         1                      4
    3                         1                     10
    4                         2                     11
    5                         2                     11
Lo que Necesitaria listar, son los ultimos TRABAJOS realizados para cada cliente diferente, sin importar la categoria, por lo tanto los tengo que ordenar segun TRABAJO_ID y agrupar segun CLIENTE_ID.

Buen el SELECT que uso es el siguiente:
Código HTML:
SELECT DISTINCT (cliente_id), categoria, trabajo_id
FROM TRABAJOS
GROUP BY cliente_id
ORDER BY trabajo_id DESC
Me devuelve lo siguiente:
Código HTML:
trabajo_id                 cliente_id           categoria
    1                         1                      3
    4                         2                     11
Como ven en el resultado, me devuelve los primeros trabajos realizados a cada cliente y lo que quiero yo son listar los ultimos.

Ejemplo:
Código HTML:
trabajo_id                 cliente_id           categoria
    3                         1                      10
    5                         2                      11
Por que sucede esto... me pueden dar una mano?? se los agradezco mucho.
__________________
Saludos :adios: :adios: :adios:
  #2 (permalink)  
Antiguo 01/12/2004, 20:28
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
No creo que sea tan dichil !!!!!!.... pueden revisarlo.. por fa ?? !!!!
__________________
Saludos :adios: :adios: :adios:
  #3 (permalink)  
Antiguo 02/12/2004, 03:25
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Mi conocimiento de MySQL es nulo, la forma en la que estás intentando hacer tu query, me parece que no te dará el resultado que esperas, cuando necesito sacar consultas como la que dices, en SQL-Server, por ejemplo, lo hago de la siguiente manera

SELECT cliente_id, categoria, trabajo_id
FROM TRABAJOS INNER JOIN
(SELECT cliente_id, Max(TRABAJOS.trabajo_id) AS trabajo_id
FROM TRABAJOS
GROUP BY cliente_id) AS MAXTRABAJO
ON TRABAJOS.cliente_id = MAXTRABAJO.cliente_id AND TRABAJOS.trabajo_id = MAXTRABAJOS.trabajo_id

El problema puede ser, según otros mensajes publicados en este foro, es, que las subconsultas en según que versiones de MySQL no funcionan

Un saludo
  #4 (permalink)  
Antiguo 02/12/2004, 08:15
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Muchas Gracias por tu respuesta.....
Taria joya que funcione asi, pero lo modifique para el MySqL y no funka.
Como bien decis quizas sea la version....

Alguien hizo algun tipo de SELECT parecido a este, en MySQL .. ??
__________________
Saludos :adios: :adios: :adios:
  #5 (permalink)  
Antiguo 02/12/2004, 08:56
 
Fecha de Ingreso: abril-2003
Ubicación: Madrid
Mensajes: 707
Antigüedad: 21 años
Puntos: 0
Antes de nada... que error te da???
  #6 (permalink)  
Antiguo 02/12/2004, 09:08
Avatar de granbosteron  
Fecha de Ingreso: agosto-2004
Mensajes: 164
Antigüedad: 19 años, 8 meses
Puntos: 1
Código HTML:
#1064 - You have an error in your SQL syntax near '(SELECT cliente_id, Max(TRABAJOS.trabajo_id) AS trabajo_id
FROM TRABAJOS
GROUP BY cliente_id' at line 3
Es por la SUBCOUNSULTA.... estoy usando MySQL de las utlimas versiones del 3 o 4.0... y las subconsultas se pueden hacer a partir del 4.1 creo.... pero no se cual es la version estable actual del MySQL y cual es la que generalmente usan las empresas de hosting.

Voy a averiguar eso y cualquier cosa cambio la version para poder hacer subconsultas.
Muchas Gracias nuevamente.
__________________
Saludos :adios: :adios: :adios:
  #7 (permalink)  
Antiguo 03/12/2004, 06:03
 
Fecha de Ingreso: septiembre-2004
Ubicación: Valencia
Mensajes: 39
Antigüedad: 19 años, 7 meses
Puntos: 0
SELECT DISTINCT cliente_id, categoria, max(trabajo_id)
FROM TRABAJOS
GROUP BY cliente_id
  #8 (permalink)  
Antiguo 04/12/2004, 10:18
 
Fecha de Ingreso: septiembre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
Prueba a ver así:
SELECT DISTINCT (cliente_id), categoria, trabajo_id
FROM TRABAJOS
GROUP BY cliente_id
ORDER BY trabajo_id ASC

Salu2.
-dcpc-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:45.