Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Ajuda da instrução SQL - Selecione o pedido mais recente para cada cliente


Eu não acho que você queira usar MAX() porque você não quer agrupar o OrderID. O que você precisa é de uma subconsulta ordenada com um SELECT TOP 1.
select * 
from Customers 
    inner join Orders 
        on Customers.CustomerID = Orders.CustomerID
        and OrderID = (
            SELECT TOP 1 subOrders.OrderID 
            FROM Orders subOrders 
            WHERE subOrders.CustomerID = Orders.CustomerID 
            ORDER BY subOrders.OrderDate DESC
        )