Newsgroup: it.comp.appl.access
Titolo: Campionati del settore giovanile

Se qualcuno ha un db su un Campionato di Calcio qualsiasi (che con le query
si riesca a stilare le classifica) che mi serva da esempio e mi faccia la
cortesia di mandarmelo, gliene sarei grato .
                              Sauro
P.S. sono 10 giorni che ci lavoro , ho anche il manuale "Guida Completa
Access 2000" ho imparato tantissime cose, ma quella che mi interessava non
sono riuscito
a farla.
                 Se qualche anima buona mi invia un File in privato, tolga
"2002" dall'indirizzo .  Grazie

 ha scritto nel messaggio
news:pJ3P9.55941$TC5.1...@twister1.libero.it...

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
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Funziona alla perfezione, perfetto, favoloso .
Ora devo creare una maschera di inserimento dati nella tabella chiamata
"Partite" dove le squadre hanno un codice che è nella tabella "Squadre" , se
mi puoi dare un' altro aiutino (per te forse è un aiutino, ma x me è un
aiutone).
                        Grazie  Sauro

 ha scritto nel messaggio
news:o8GP9.61281$TC5.2...@twister1.libero.it...

Per prima cosa apri la struttura della tabella Partite.
Per il campo SqCasa esegui l'Autocomposizione Ricerca... basandola sulla
tabella Squadre e selezionando ambedue i campi di tale tabella; dopo la fine
dell'autocomposizione, se Access ti ha cambiato il nome al campo SqCasa,
reimpostalo.
Fai la stessa cosa per il campo SqFuori.
Così facendo, anche se i campi SqCasa e SqFuori contengono l'IdSquadra, sia
nella tabella che nelle maschere ad essa associate vedrai il nome delle
squadre e non il loro codice.
Risolto questo problema, non ti resta altro di crearti una maschera con
l'autocomposizione basandola sulla tabella Partite.
Quando aprirai tale maschera, i due controlli associati ai campi SqCasa e
SqFuori risulteranno essere due caselle combinate con le quali selezionerai,
dal menu a tendina, il nome della sqadra di cui vuoi memorizzare in tabella
il codice; se lo preferisci, potrai anche digitare il nome della squadra
all'interno della casella combinata.
