Newsgroup: it.comp.appl.access
Titolo: x roberto da casa: errore campionato di calcio

 "2002" dall'indirizzo .  Grazie
Se vuoi ottenere una classifica di un campionato di calcio usando solo
delle
query, prova così.
Se i nomi delle squadre che partecipano al campionato sono contenuti
in una
tabella chiamata Squadre che ha la seguente struttura
IdSquadra            Contatore e chiave primaria
Squadra                Testo
Se i risultati delle partite sono contenuti in una tabella chiamata
Partite
che ha la seguente struttura:
IdPartita                Contatore e chiave primaria
DataPartita            Data/ora
SqCasa                 Numerico
GoalCasa              Numerico
SqFuori                Numerico
GoalFuori             Numerico
dove:
SqCasa contiene l'IdSquadra della squadra che gioca in casa
GoalCasa contiene i goal fatti dalla squadra che gioca in casa
SqFuori contiene l'IdSquadra della squadra che gioca in trasferta
GoalFuori contiene i goal fatti dalla squadra che gioca in trasferta
Creati una query unione chiamata Query1 che abbia il seguente codice
SQL:
SELECT Squadre.Squadra,
IIf([GoalCasa]>[GoalFuori],3,IIf([GoalCasa]=[GoalFuori],1,0)) AS
Punti, 1 AS
GiocateCasa, IIf([GoalCasa]>[GoalFuori],1,0) AS VinteCasa,
IIf([GoalCasa]=[GoalFuori],1,0) AS PariCasa,
IIf([GoalCasa]<[GoalFuori],1,0)
AS PerseCasa, Partite.GoalCasa AS FattiCasa, Partite.GoalFuori AS
SubitiCasa, 0 AS GiocateFuori, 0 AS VinteFuori, 0 AS PariFuori, 0 AS
PerseFuori, 0 AS FattiFuori, 0 AS SubitiFuori
FROM Squadre INNER JOIN Partite ON Squadre.IdSquadra = Partite.SqCasa
UNION SELECT Squadre.Squadra,
IIf([GoalCasa]<[GoalFuori],3,IIf([GoalCasa]=[GoalFuori],1,0)) AS
Punti, 0 AS
GiocateCasa, 0 AS VinteCasa, 0 AS PariCasa, 0 AS PerseCasa, 0 AS
FattiCasa,
0 AS SubitiCasa, 1 AS GiocateFuori, IIf([GoalCasa]<[GoalFuori],1,0) AS
VinteFuori, IIf([GoalCasa]=[GoalFuori],1,0) AS PariFuori,
IIf([GoalCasa]>[GoalFuori],1,0) AS PerseFuori, Partite.GoalFuori AS
FattiFuori, Partite.GoalCasa AS SubitiFuori
FROM Squadre INNER JOIN Partite ON Squadre.IdSquadra =
Partite.SqFuori;
Creati ora una query chiamata Classifica che abbia il seguente codice
SQL:
SELECT Query1.Squadra, Sum(Query1.Punti) AS Punti,
[GiocateCasa]+[GiocateFuori] AS Giocate, [VinteCasa]+[VinteFuori] AS
Vinte,
[PariCasa]+[PariFuori] AS Pari, [PerseCasa]+[PerseFuori] AS Perse,
[FattiCasa]+[FattiFuori] AS Fatti, [SubitiCasa]+[SubitiFuori] AS
Subiti,
Sum(Query1.GiocateCasa) AS GiocateCasa, Sum(Query1.VinteCasa) AS
VinteCasa,
Sum(Query1.PariCasa) AS PariCasa, Sum(Query1.PerseCasa) AS PerseCasa,
Sum(Query1.FattiCasa) AS FattiCasa, Sum(Query1.SubitiCasa) AS
SubitiCasa,
Sum(Query1.GiocateFuori) AS GiocateFuori, Sum(Query1.VinteFuori) AS
VinteFuori, Sum(Query1.PariFuori) AS PariFuori, Sum(Query1.PerseFuori)
AS
PerseFuori, Sum(Query1.FattiFuori) AS FattiFuori,
Sum(Query1.SubitiFuori) AS
SubitiFuori
FROM Query1
GROUP BY Query1.Squadra
ORDER BY Sum(Query1.Punti) DESC;
ATTENZIONE!!!: occorre che la query unione si chiami proprio Query1,
in caso
contrario devi modificare di conseguenza il codice SQL della query che
ti
visualizza la classifica.
Naturalmente sarà sufficiente aprire la seconda query per avere il
risultato
cercato.
--
Roberto
------------------------------

 [GoalFuori], 1, 0) AS PerseFuori, Partite.GoalFuori AS FattiFuori,
Partite.GoalCasa AS SubitiFuori
FROM Squadre INNER JOIN Partite ON Squadre.IdSquadra = Partite.SqFuori;
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto:

sorry, non l'avevo notato.
ciao
Simone P.

 sorry, non l'avevo notato.
A Simo'
centomila righe per dire che non l'avevi trovato?
suvvia, "cuttiamo".
Sib



vedila come vuoi.
Simone