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

Duda group by

Estas en el tema de Duda group by en el foro de Mysql en Foros del Web. Hola a todos!!! tengo una duda resulta que tengo la siguiente tabla CREATE TABLE `entradas` ( `identrada` int(10) unsigned NOT NULL AUTO_INCREMENT, `fecha` datetime NOT ...
  #1 (permalink)  
Antiguo 21/04/2010, 10:44
Avatar de solracnauj21  
Fecha de Ingreso: octubre-2007
Ubicación: Tuxtla Gutierrez
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Duda group by


Hola a todos!!!
tengo una duda resulta que tengo la siguiente tabla

CREATE TABLE `entradas` (
`identrada` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fecha` datetime NOT NULL,
`idproducto` int(10) unsigned NOT NULL,
`cantidad` int(10) unsigned NOT NULL,
`idusuario` int(10) unsigned NOT NULL,
`idproveedor` int(10) unsigned NOT NULL,
PRIMARY KEY (`identrada`)
) ENGINE=InnoDB CHARSET=utf8;
---- Mis registros son los siguientes ----
1, '2010-04-20 01:45:05', 8, 20, 24, 1
2, '2010-04-20 01:45:55', 1, 10, 24, 1
3, '2010-04-20 01:46:16', 1, 10, 24, 2

4, '2010-04-20 01:46:36', 6, 20, 24, 2
7, '2010-04-21 11:10:10', 1, 11, 24, 1
8, '2010-04-21 11:10:25', 7, 35, 24, 2

Ahora viene mi duda, resulta que lo quiero hacer es agrupar los datos mediante el idproducto y que al momento de agrupar muetre la informacion del ultimo registro.

Si hago una cosulta de esta manera
SELECT * FROM entradas GROUP BY idproducto; // me sale
2, '2010-04-20 01:45:55', 1, 10, 24, 1
4, '2010-04-20 01:46:36', 6, 20, 24, 2
8, '2010-04-21 11:10:25', 7, 35, 24, 2
1, '2010-04-20 01:45:05', 8, 20, 24, 1

Si me los agrupa pero, no con la informacion del ultimo registro, por ejemplo los datos que estan en rojo, mi objetivo es obtener el siguiente dato que seria
7, '2010-04-21 11:10:10', 1, 11, 24, 1 .. a lo que llego a la teoria que primero necesito ordenar y despues agrupar!! ¿Alguna idea de como hacerlo? o tiene algun truco el GROUP BY ?

Espero haber sido claro!!
Gracias y saludos
  #2 (permalink)  
Antiguo 21/04/2010, 10:52
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Duda group by

Tú mismo lo has descubierto. Primero ordenas por fecha
SELECT t1.identrada, t1.fecha, t1.idproducto, t1.idusuario, t1.idproveedor FROM (SELECT identrada, fecha, idproducto, idusuario, idproveedor FROM entradas ORDER BY fecha DESC)t1 GROUP BY t1.idproducto
  #3 (permalink)  
Antiguo 21/04/2010, 11:06
Avatar de solracnauj21  
Fecha de Ingreso: octubre-2007
Ubicación: Tuxtla Gutierrez
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Respuesta: Duda group by

Cita:
Iniciado por jurena Ver Mensaje
Tú mismo lo has descubierto. Primero ordenas por fecha
SELECT t1.identrada, t1.fecha, t1.idproducto, t1.idusuario, t1.idproveedor FROM (SELECT identrada, fecha, idproducto, idusuario, idproveedor FROM entradas ORDER BY fecha DESC)t1 GROUP BY t1.idproducto

Wooola!!!Excelente no sabia como hacer eso!!!

Muchas gracias jurena!!!!!

Etiquetas: group
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 13:52.