L'Instruction SQL d'Aide - Sélectionnez la dernière Commande de chaque Client

Dire que j'ai 2 tables: Clients et des Commandes. Un Client peut avoir plusieurs Commandes.

Maintenant, j'ai besoin de montrer tous les Clients avec son dernier Ordre. Cela signifie que si un Client a plus que l'on commande, montrent que l'Ordre avec la dernière Heure d'Entrée.

C'est dans quelle mesure j'ai réussi sur mon propre:

SELECT a.*, b.Id
FROM Customer a INNER JOIN Order b ON b.CustomerID = a.Id
ORDER BY b.EntryTime DESC

Bien sûr, cela renvoie tous les Clients avec un ou plusieurs Ordres, montrant les dernières Ordre d'abord, pour chaque Client, ce qui n'est pas ce que je voulais. Mon esprit a été coincé dans une ornière, à ce moment-là, j'espère que quelqu'un peut me pointer dans la bonne direction.

Pour une raison quelconque, j' pense - je besoin pour utiliser le MAX de syntaxe quelque part, mais il m'échappe en ce moment.

mise à JOUR: Après avoir traversé quelques réponses ici (il y en a beaucoup!), J'ai réalisé que j'ai fait une erreur: je voulais dire tous Client avec son dernier album. Cela signifie que si il n'a pas un Ordre, alors je n'ai pas besoin de lui la liste.

UPDATE2: le Fixe de ma propre instruction SQL, ce qui a probablement causé de la confusion pour les autres.

Votre table des clients dans cet exemple a un n ° de commande. Est ce que le droit?
Oui, implicite dans le SQL.
Si votre table Client dispose d'un n ° de commande votre question n'a aucun sens. Si c'était vrai, vous est-à-dire que chaque commande a un autre client. Êtes-vous sûr que votre Commande de table ne possède pas de code client?
aïe, vous avez raison! L'homme, Mon esprit est vraiment hors de lui aujourd'hui. :/

OriginalL'auteur alextansc | 2008-12-01