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

GROUP BY y MAX() en una misma tabla

Estas en el tema de GROUP BY y MAX() en una misma tabla en el foro de SQL Server en Foros del Web. Hola, no soy muy ducha en esto, pero mi consulta es la siguiente, necesito sacar de una tabla Compras por ej, la fecha de ultima ...
  #1 (permalink)  
Antiguo 16/05/2007, 15:37
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
GROUP BY y MAX() en una misma tabla

Hola, no soy muy ducha en esto, pero mi consulta es la siguiente, necesito sacar de una tabla Compras por ej, la fecha de ultima compra, precio, la cantidad y el producto comprado.
lo que hago es :

select prodid, cantcomp, precio, max(fecha) from compras
group by prodid, cantcom

y me da lo siguiente
Prodid cantom fecha precio
1 15 10/02/07 2.0
1 2 12/02/07 3.0
5 20 10/05/07 1.0
5 10 09/05/07 3.5
6 12 08/05/07 6.5

Yo necesito que me de unicamente esto:
Prodid cantom fecha precio
1 2 12/02/07 3.0
5 20 10/05/07 1.0
6 12 08/05/07 6.5

Aclaro que son resultados de muestra, tengo mas de 4000 productos.
Desde ya muchas Gracias!!!
  #2 (permalink)  
Antiguo 16/05/2007, 16:14
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: GROUP BY y MAX() en una misma tabla

Tienes que usar subquerys, porque tanto cantom como precio entran dentro del GROUP BY y ocasionan que se muestre como hoy lo ves.

Código:
SELECT C.prodid, C.cantcomp, C.precio, C.fecha
FROM compras C
	INNER JOIN (SELECT prodid, MAX(fecha) AS fecha FROM compras GROUP BY prodid) T
		ON C.prodid = T.prodid
		AND C.fecha = T.fecha
Aunque lo ideal es usar la llave de la tabla para hacer el join (usar la fecha se presta a errores cuando existan fechas iguales)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 17/05/2007, 07:54
 
Fecha de Ingreso: mayo-2007
Mensajes: 3
Antigüedad: 17 años
Puntos: 0
Re: GROUP BY y MAX() en una misma tabla

Muchas Gracias Mithrandir!!!!!
Me funciono perfecto.
Besos
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 02:59.