La query è corretta.. ti scrivo l'equivalente:
SELECT
Linea
, CustomerID
, valore
, [rank] = RANK()OVER (PARTITION BY Linea ORDER BY valore DESC)
FROM
(
SELECT
CustomerID
, Linea = LEFT(CustomerID, 1)
, valore = SUM(Freight)
FROM Orders
GROUP BY
CustomerID
, LEFT(CustomerID, 1)
) tabella
>ma il problema è che il mio database è 2000...
il problema è la Ranking Function (RANK()) che non esiste per sql 2000.
>non so cosa fare per ottenere lo stesso risultato
Devi farti la logica a mano, ovvero crearti il risultato del rank tramite tabelle temp e contatori.. Oppure passare a 2005 , magari, se non hai necessità particolari, con la versione Express che è free.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi