>Salve,
Ciao
>Ora ho bisogno, richiamando la scheda della singola squadra di
>far visualizzare la posizione nella tabella "classifica".
>
>SELECT ROW_NUMBER() OVER ( ORDER BY punti DESC, squadra ) AS
>posizione, squadra FROM classifica
>poi leggo con un ciclo tutti i record fino a trovare la squadra
>che mi interessa e ricavarne la posizione.
Spero di aver capito il problema, che ne pensi di questa soluzione?
USE tempdb;
GO
CREATE TABLE #Classifica
(
IDSquadra int NOT NULL
, Punti smallint NOT NULL DEFAULT(0)
, RetiFatte smallint NOT NULL DEFAULT(0)
, RetiSubite smallint NOT NULL DEFAULT(0)
, Gialli smallint NOT NULL DEFAULT(0)
, Rossi smallint NOT NULL DEFAULT(0)
, CONSTRAINT PK_TempClassifica PRIMARY KEY CLUSTERED
(
IDSquadra
)
)
GO
CREATE TABLE #Squadre
(
IDSquadra int NOT NULL
, Nome varchar(50) NOT NULL
, CONSTRAINT PK_TempSquadre PRIMARY KEY CLUSTERED
(
IDSquadra
)
)
GO
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (1, 'Juventus')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (2, 'Inter')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (3, 'Milan')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (4, 'Roma')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (5, 'Lazio')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (6, 'Parma')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (7, 'Fiorentina')
INSERT INTO #Squadre (IDSquadra, Nome)
VALUES (8, 'Napoli')
GO
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (1, 10, 5, 2, 2, 2)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (2, 20, 10, 1, 3, 2)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (3, 15, 4, 2, 3, 2)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (4, 7, 4, 2, 3, 2)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (5, 7, 3, 2, 3, 2)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (6, 8, 4, 3, 3, 3)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (7, 2, 1, 1, 3, 3)
INSERT INTO #Classifica (IDSquadra, Punti, RetiFatte, RetiSubite, Gialli, Rossi)
VALUES (8, 0, 0, 5, 3, 3)
GO
SELECT
T.*
FROM
(
SELECT
S.Nome
, C.Punti
, C.RetiFatte
, C.RetiSubite
, C.Gialli
, C.Rossi
, C.IDSquadra
, Posizione = RANK() OVER(ORDER BY Punti DESC)
FROM
#Classifica C
JOIN #Squadre S ON C.IDSquadra = S.IDSquadra
) T
WHERE
T.IDSquadra = 3
DROP TABLE #Classifica
GO
DROP TABLE #Squadre
GO
--
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