Dites que j'ai 2 tables: Clients et Commandes. Un client peut avoir plusieurs commandes.Aide de l'instruction SQL - Sélectionnez la dernière commande pour chaque client
Maintenant, je dois montrer à tous les clients avec sa dernière commande. Cela signifie que si un client a plus d'une commande, affichez uniquement la commande avec la dernière heure d'entrée.
C'est jusqu'où je réussi moi-même:
SELECT a.*, b.Id
FROM Customer a INNER JOIN Order b ON b.CustomerID = a.Id
ORDER BY b.EntryTime DESC
Bien sûr retourne tous les clients avec une ou plusieurs commandes, montrant la dernière commande d'abord pour chaque client, ce qui est pas ce que je voulais. Mon esprit était coincé dans une ornière à ce stade, alors j'espère que quelqu'un peut me diriger dans la bonne direction.
Pour une raison quelconque, je pense J'ai besoin d'utiliser la syntaxe MAX quelque part, mais il m'échappe juste maintenant.
MISE À JOUR: Après avoir traversé quelques réponses ici (il y a beaucoup!), Je me suis aperçu que je fait une erreur: je voulais dire tout Client avec son dernier album. Cela signifie que s'il n'a pas d'Ordre, je n'ai pas besoin de le lister.
UPDATE2: Correction de ma propre instruction SQL, qui n'a probablement pas causé de fin de confusion aux autres.
Votre table des clients dans cet exemple a un OrderId. Est-ce correct? –
Oui, comme implicite dans le SQL. – alextansc
Si votre table client a un OrderID votre question n'a pas de sens. Si c'était vrai, vous diriez que chaque commande a un client différent. Êtes-vous sûr que votre table Order n'a pas de CustomerID? –