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

Distinct me toma más de un campo

Estas en el tema de Distinct me toma más de un campo en el foro de Mysql en Foros del Web. Tengo esta consulta: SELECT DISTINCT id_usuario, money, fecha FROM moneda WHERE id_usuario IN ... Y me toma el DISTINCT para los tres campos, y yo ...
  #1 (permalink)  
Antiguo 05/01/2010, 11:04
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años, 6 meses
Puntos: 1
Distinct me toma más de un campo

Tengo esta consulta:

SELECT DISTINCT id_usuario, money, fecha FROM moneda WHERE id_usuario IN ...

Y me toma el DISTINCT para los tres campos, y yo solo quiero para el id_usuario

Cuando dejo asi...

SELECT DISTINCT id_usuario FROM moneda WHERE id_usuario IN ...

...funciona perfecto, pero necesito tener los otros dos campos si o si
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #2 (permalink)  
Antiguo 05/01/2010, 11:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Distinct me toma más de un campo

SELECT id_usuario, money, fecha FROM moneda WHERE id_usuario IN ... GROUP BY id_usuario

pero piensa que esto tiene un inconveniente: para cada id_usuario te traerá sólo los datos de money y fecha del primer registro donde aparece ese id_usuario.

Deberías aclararnos qué quieres sacar exactamente.
  #3 (permalink)  
Antiguo 05/01/2010, 20:23
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años, 6 meses
Puntos: 1
Respuesta: Distinct me toma más de un campo

A ver, mi tabla tiene estos datos:

id money id_usuario fecha
1 600 1 2010-01-05
2 150 2 2010-01-05
3 250 1 2010-01-06

La idea es imprimir el último registro de dinero (money) de cada usuario (sin repetirlo) de forma descendente

La impresion quedaria asi:

Usuario 1 250
Usuario 2 150
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #4 (permalink)  
Antiguo 06/01/2010, 00:54
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Distinct me toma más de un campo

Prueba esto a ver si funciona:
Código SQL:
Ver original
  1. SELECT T1.id_usuario, T1.money, T1.usuario_fecha
  2.  FROM (SELECT id_usuario, money, usuario_fecha FROM tutabla
  3.  ORDER BY usuario_fecha DESC)T1 GROUP BY T1.id_usuario ORDER BY T1.id_usuario
  #5 (permalink)  
Antiguo 06/01/2010, 09:31
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 21 años, 6 meses
Puntos: 1
Respuesta: Distinct me toma más de un campo

Excelente, me andubo bárbaro! le tuve que cambiar el order by por money, pero es un detalle mínimo!

No tenia la menor idea que dentro de un FROM se puede hacer un SELECT, solo sabía sobre subconsultar dentro del where!

Bueno, muchas gracias por tu ayuda! :D
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #6 (permalink)  
Antiguo 25/08/2010, 18:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Distinct me toma más de un campo

Hola,
tengo el mismo problema y segui exactamente lo que dijeron en el comentario anterior, estoy trabajando con oracle 10g y me devuelve el error
ORA-00979: no es una expresion GROUP BY
  #7 (permalink)  
Antiguo 26/08/2010, 02:52
Avatar de 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
Puntos: 2658
Respuesta: Distinct me toma más de un campo

Estás en el foro equivocado. Oracle tiene su propio foro.

El problema es que si bien el SQL es uno sólo, los diferentes DBMS le agregan cosas a sus propios intérpretes, que no son estandar. Oracle, por más que sea propietario actualmente de MySQL, no le ha "regalado" a MySQL lo que hace....

Consulta en Foro de Oracle.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: distinct, campos
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.
Respuesta




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