Digamos que tengo 2 tablas: clientes y pedidos. Un cliente puede tener muchos pedidos.Ayuda de instrucción SQL - Seleccione el último pedido para cada cliente
Ahora, tengo que mostrar a los Clientes con su último pedido. Esto significa que si un cliente tiene más de un pedido, muestre solo el pedido con el último horario de entrada.
Esto es lo lejos que he conseguido por mi cuenta:
SELECT a.*, b.Id
FROM Customer a INNER JOIN Order b ON b.CustomerID = a.Id
ORDER BY b.EntryTime DESC
Por supuesto, esto devuelve todos los clientes con una o más órdenes, mostrando la última orden primero para cada cliente, lo cual no es lo que quería. Mi mente estaba atascada en este punto, así que espero que alguien pueda señalarme en la dirección correcta.
Por alguna razón, I piensa Necesito usar la sintaxis MAX en alguna parte, pero me acaba de escapar en este momento.
ACTUALIZACIÓN: Después de pasar por algunas respuestas aquí (hay un montón!), Me di cuenta de que cometí un error: me refería cualquier cliente con su último disco. Eso significa que si él no tiene una Orden, entonces no necesito enumerarlo.
UPDATE2: Se arregló mi propia instrucción de SQL, que probablemente causó confusión sin fin a los demás.
Su tabla de clientes en este ejemplo tiene una OrderId. ¿Está bien? –
Sí, como está implícito en el SQL. – alextansc
Si su tabla de clientes tiene un ID de pedido, su pregunta no tiene sentido. Si fuera cierto, diría que cada orden tiene un cliente diferente. ¿Estás seguro de que tu tabla de pedidos no tiene un ID de cliente? –