SQL - Consulta simple

 
Vista:

Consulta simple

Publicado por PAblo (16 intervenciones) el 27/08/2007 00:44:28
Amigos estoy trabado en una consulta que no es muy complicada, pero no me sale.
En una tabla tengo un campo con el N° de producto IDProducto, El precio de compra PCompra y la fecha de compra,FCompra. El resultado que busco es el precio del producto más actual. Lo qu estoy haciendo es agrupar por producto, buscar la fecha mayor, y el problema viene cuando quiro incluir el precio, porque no lo incluyo en group by. Desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta simple

Publicado por Isaias (5072 intervenciones) el 27/08/2007 17:24:17
¿Que base de datos manejas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta simple

Publicado por Pablo (16 intervenciones) el 27/08/2007 19:40:11
Estoy usando SQL Server.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta simple

Publicado por Isaias (5072 intervenciones) el 27/08/2007 20:54:48
Te pongo un ejemplo:

CREATE TABLE #PRODUCTO_PRUEBA (IDProducto int, PCompra smallmoney, FCompra datetime)
INSERT INTO #PRODUCTO_PRUEBA VALUES(1, 20.00, '2006-01-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(1, 30.00, '2006-03-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(1, 40.00, '2007-01-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(1, 60.00, '2007-02-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(1, 80.00, '2007-08-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(1, 85.00, '2007-09-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(2, 20.00, '2006-01-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(2, 30.00, '2006-03-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(2, 40.00, '2007-01-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(2, 60.00, '2007-02-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(2, 80.00, '2007-08-01')
INSERT INTO #PRODUCTO_PRUEBA VALUES(2, 95.00, '2007-09-01')


SELECT #PRODUCTO_PRUEBA.IDProducto, PCompra
FROM #PRODUCTO_PRUEBA JOIN (SELECT IDProducto, MAX(FCompra) as Fecha FROM #PRODUCTO_PRUEBA GROUP BY IDProducto) AS x
ON #PRODUCTO_PRUEBA.IDProducto = x.IDProducto
AND #PRODUCTO_PRUEBA.FCompra = x.Fecha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar