À l'aide de SELECT en HAUT d'une colonne, puis le tri sur une colonne différente

Je suis à l'aide de SQL Server 2005, et je veux à la requête pour les vendeurs de générer le plus de revenus, triés par le nom du vendeur. Ci-dessous est la requête que j'ai essayé. L'intérieur de la sous-requête obtient les 15 plus grands fournisseurs triés par les recettes, et j'ai essayer de l'ordre ceux résultats par le nom du fournisseur.

SELECT Revenue, VendorName
FROM (
  SELECT TOP 15
         SUM(po.POTotal) AS Revenue
       , Vendors.VendorName AS VendorName
  FROM PurchaseOrders po
  INNER JOIN Vendors ON po.Vendor_ID = Vendors.Vendor_ID
  WHERE ...
  GROUP BY Vendors.VendorName
  ORDER BY Revenue DESC
)
ORDER BY VendorName ASC

Mais cela me donne un message d'erreur:

Msg 156, Niveau 15, État 1, Ligne 14
Syntaxe incorrecte près du mot clé "ORDRE".

Est-il une autre façon de le faire? Je pense que cela pourrait être possible, mais je préfère ne pas le faire de cette façon.


je m'excuse si c'est un doublon, je ne sais même pas quoi chercher pour voir si cela a déjà été demandé.

OriginalL'auteur Kip | 2009-11-11