Me estoy liando o es dificil?

17/11/2004 - 18:16 por Daniel Diez | Informe spam
Tenemos
Tabla Pedido (IDPedido, Fecha...)
Tabla PedidoDetalle (ID, IDPedido, IDProducto...)
Tabla Producto (IDProducto,...)
Quiero saber el IDPedido y la Fecha mas reciente para cada uno de los
productos. Es decir para cada producto saber cuando se vendio por ultima
vez.
La consulta debiera devolver el IDPedido, Fecha, IDProducto con nulos si el
producto no se ha vendido nunca. Si se ha vendido mas de una vez con la
misma Fecha debe devolver el de mayor IDPedido

Es dificil o me estoy liando?

Preguntas similare

Leer las respuestas

#1 Maxi
17/11/2004 - 18:32 | Informe spam
Hola, creo que esto te podria ser util

SELECT T1.FECHA AS FECHA,p.idpedido,producto.id
FROM PRODUCTO LEFT JOIN (SELECT PRODUCTID,MAX(PEDIDO.FECHA) AS FECHA
FROM PEDIDO_DETALLE INNER JOIN PEDIDO ON PEDIDO.IDPEDIDO =
PEDIDODETALLE.IDPEDIDO
GROUP BY PRODUCTOID) T1 ON
PRODUCTO.ID = T1.PRODUCTOID
INNER JOIN (SELECT * FROM PEDIDO) AS ON P.IDPEDIDO=T1.IDPEDIDO AND
P.FECHA = T1.FECHA


pd: probalo, deberia funcionar, sino decime y lo vemos ;)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Daniel Diez" escribió en el mensaje
news:
Tenemos
Tabla Pedido (IDPedido, Fecha...)
Tabla PedidoDetalle (ID, IDPedido, IDProducto...)
Tabla Producto (IDProducto,...)
Quiero saber el IDPedido y la Fecha mas reciente para cada uno de los
productos. Es decir para cada producto saber cuando se vendio por ultima
vez.
La consulta debiera devolver el IDPedido, Fecha, IDProducto con nulos si
el producto no se ha vendido nunca. Si se ha vendido mas de una vez con la
misma Fecha debe devolver el de mayor IDPedido

Es dificil o me estoy liando?






Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.795 / Virus Database: 539 - Release Date: 12/11/2004
Respuesta Responder a este mensaje
#2 Javier Loria
18/11/2004 - 18:26 | Informe spam
Hola:
A mi me parece que es dificil.
Pero tal vez algo como esto:
==SELECT UltimaFechaPedido.Fecha AS Fecha
, UltimaFechaPedido.IDProducto
, MAX(PedidoDetalle.IDPedido)
FROM PedidoDetalle
JOIN Pedido
ON Pedido.IDPedido = PedidoDetalle.IDPedido
RIGHT JOIN (SELECT IDProducto, MAX(Pedido.Fecha) AS Fecha
FROM PedidoDetalle
INNER JOIN Pedido
ON Pedido.IDPedido = PedidoDetalle.IDPedido
GROUP BY IDProducto) AS UltimaFechaPedido
ON UltimaFechaPedido.IDProducto = PedidoDetalle.IDProducto
AND UltimaFechaPedido.Fecha=Pedido.Fecha
GROUP BY UltimaFechaPedido.Fecha
, UltimaFechaPedido.IDProducto
== Hay dos group by anidados el primero obtiene la Ultima Fecha y el
segundo el ultimo pedido de esta fecha.

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

"Daniel Diez" wrote in message
news:
Tenemos
Tabla Pedido (IDPedido, Fecha...)
Tabla PedidoDetalle (ID, IDPedido, IDProducto...)
Tabla Producto (IDProducto,...)
Quiero saber el IDPedido y la Fecha mas reciente para cada uno de los
productos. Es decir para cada producto saber cuando se vendio por ultima
vez.
La consulta debiera devolver el IDPedido, Fecha, IDProducto con nulos si


el
producto no se ha vendido nunca. Si se ha vendido mas de una vez con la
misma Fecha debe devolver el de mayor IDPedido

Es dificil o me estoy liando?


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida