Consulta Especial

19/08/2004 - 21:15 por Noriel Alejandro | Informe spam
Buenas tardes grupo, tengo una consulta de movimiento de productos en donde
quiero recuperar solamente las tres ultimas entradas al inventario de cada
producto. Sin embargo no he podido. Es decir algo como:

CodigoProducto NombreProducto Cantidad Precio Fecha
xxx xxx 5.00
.75 02/08/2004
xxx xxx 7.00
.65 15/04/2004
xxx xxx 8.00
.68 30/12/2003
yyy yyy 5.00
.45 31/07/2004
yyy yyy 4.00
.40 17/06/2004
yyy yyy 4.00
.42

A pesar de que cada producto tiene n cantidad de movimientos.

Que tipo de query podria realizar, Gracias, por su ayuda de antemano.
 

Leer las respuestas

#1 Javier Loria
20/08/2004 - 04:23 | Informe spam
Hola Noriel:
Algo como:
SELECT Productos.CodigoProducto
, Productos.NombreProducto
, Productos.Cantidad
, Productos.Precio
, Productos.Fecha
FROM (SELECT P1.CodigoProducto
, P1.Fecha
FROM Productos AS P1
JOIN Productos AS P2
ON P1.CodigoProducto=P2.CodigoProducto
AND P1.Fecha1>=P2.Fecha
GROUP BY P1.CodigoProducto
, P1.Fecha
HAVING COUNT(P2.*)<=3) AS Ultimas3
ON Productos.CodigoProducto=Ultimas3.CodigoProducto
AND Productos.Fecha=Ultimas3.Fecha
Esto asumiendo que no se repiten CodigoProducto/Fecha (Llave Primaria o
Candidata).
Si se repitieran, entonces podrias usar algun otro criterio, si no
tienen ninguno, puedes cambiar la consulta eliminado el = de la comparacion
de fechas y sumamando 1 al count. Esta incluira los empates menores a 3.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Noriel Alejandro" wrote in
message news:
Buenas tardes grupo, tengo una consulta de movimiento de productos en


donde
quiero recuperar solamente las tres ultimas entradas al inventario de cada
producto. Sin embargo no he podido. Es decir algo como:

CodigoProducto NombreProducto Cantidad Precio Fecha
xxx xxx 5.00
.75 02/08/2004
xxx xxx 7.00
.65 15/04/2004
xxx xxx 8.00
.68 30/12/2003
yyy yyy 5.00
.45 31/07/2004
yyy yyy 4.00
.40 17/06/2004
yyy yyy 4.00
.42

A pesar de que cada producto tiene n cantidad de movimientos.

Que tipo de query podria realizar, Gracias, por su ayuda de antemano.

Preguntas similares