Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Aide sur les instructions SQL - Sélectionnez la dernière commande pour chaque client

Je ne pense pas que vous souhaitiez utiliser MAX() car vous ne souhaitez pas regrouper l'ID de commande. Ce dont vous avez besoin est une sous-requête ordonnée avec 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
        )