Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Guida all'istruzione SQL - Seleziona l'ultimo ordine per ciascun cliente

Non penso che tu voglia usare MAX() perché non vuoi raggruppare OrderID. Ciò di cui hai bisogno è una sottoquery ordinata con un 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
        )