View per classifica articoli

lunedì 06 febbraio 2012 - 18.05

jjchuck Profilo | Senior Member

Ciao a tutti
vorrei fare una classifica venduto per artiolo e linea e ho visto che la query sotto fa al caso mio se non fosse che non va bene per
sql 2000...come la adatto?
non so da dove partire
grazie in anticipo

(Northwind)
SELECT Linea,CustomerID,valore, RANK()OVER (PARTITION BY Linea ORDER BY valore DESC)as rank
FROM(SELECT CustomerID, LEFT(CustomerID, 1) AS Linea,SUM(Freight) AS valore
FROM Orders
GROUP BY CustomerID, LEFT(CustomerID, 1))tabella

dinoxet Profilo | Senior Member

Analizziamo questa select

>>SELECT Linea,CustomerID,valore, RANK()OVER (PARTITION BY Linea ORDER BY valore DESC)as rank
>>FROM(SELECT CustomerID, LEFT(CustomerID, 1) AS Linea
fin qui tutto ok

da qui in poi non so
>>,SUM(Freight) AS valore
>>FROM Orders
>>GROUP BY CustomerID, LEFT(CustomerID, 1))tabella

secondo me manca qualcosa


DINOXET
__________________________________________
impossible is only a word

jjchuck Profilo | Senior Member

a me da 89 righe....cioè funziona (sulla versione express di sql 2008)

ma il problema è che il mio database è 2000...

non so cosa fare per ottenere lo stesso risultato

alx_81 Profilo | Guru

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

jjchuck Profilo | Senior Member

....ancora qualche settimana e passeremo al 2008...non vedo l'ora...ero solo impaziente di finire un progettino allora ho postato....sorry
cmq approfitto per due cose
-un pdf buono per sql 2008
-l'altro post (http://www.dotnethell.it/forum/messages.aspx?ThreadID=40199)...non mi hai risposto


grazie

ciao

alx_81 Profilo | Guru

>-un pdf buono per sql 2008
intendi qualcosa da leggere per capirlo? Fossi in te comprerei la linea Inside SQL Server 2008..
in generale sennò guarda un po' i siti MS per capire le differenze..

se per caso ti è stata di aiuto, accetta la risposta che chiudiamo il thread, grazie.
--
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
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5