Uso questo codice per generare la classifica di calcio:
codice:
SELECT PunteggiSquadre.Squadra, Sum(PunteggiSquadre.Punti) AS P,
Sum(PunteggiSquadre.GoalFatti) AS GF, Sum(PunteggiSquadre.GoalSubiti) AS GS
FROM (SELECT casa AS Squadra,
Iif(ris_casa=ris_fuori,1,Iif(ris_casa>ris_fuori,3,0)) as
Punti,ris_casa AS GoalFatti,ris_fuori AS GoalSubiti
FROM campionato_calendario
WHERE ris_casa IS NOT NULL
UNION ALL
SELECT fuori AS Squadra,
Iif(ris_casa=ris_fuori,1,Iif(ris_casa>ris_fuori,0,3)) as Punti,
ris_fuori AS GoalFatti,ris_casa AS GoalSubiti
FROM campionato_calendario
WHERE ris_fuori IS NOT NULL
) AS PunteggiSquadre
GROUP BY PunteggiSquadre.Squadra
ORDER BY Sum(PunteggiSquadre.Punti) DESC ,
Sum(PunteggiSquadre.GoalFatti)-Sum(PunteggiSquadre.GoalSubiti) DESC;ù
in una tabella del tipo (3 giornate):
CASA - FUORI - GOAL FATTI - GOAL SUBITI - GIORNATA - DATA
squadra1 squadra2 0 0 1 07/07/2008
squadra3 squadra4 1 2 1 07/09/2008
squadra5 squadra6 0 1 1 07/09/2008
squadra7 squadra8 0 0 1 07/09/2008
squadra9 squadra10 2 1 1 07/09/2008
squadra11 squadra12 1 1 1 07/09/2008
squadra13 squadra14 2 1 1 07/09/2008
squadra15 squadra16 1 1 1 07/09/2008
squadra16 squadra13 1 1 2 14/09/2008
squadra6 squadra9 0 1 2 14/09/2008
squadra10 squadra15 0 1 2 14/09/2008
squadra2 squadra3 4 2 2 14/09/2008
squadra4 squadra7 2 0 2 14/09/2008
squadra12 squadra5 3 0 2 14/09/2008
squadra8 squadra11 1 2 2 14/09/2008
squadra14 squadra1 1 3 2 14/09/2008
squadra1 squadra16 2 2 3 21/09/2008
squadra3 squadra14 0 1 3 21/09/2008
squadra5 squadra8 0 2 3 21/09/2008
squadra2 squadra4 2 1 3 21/09/2008
squadra9 squadra12 2 1 3 21/09/2008
squadra11 squadra7 0 2 3 21/09/2008
squadra13 squadra10 1 0 3 21/09/2008
squadra15 squadra6 0 0 3 21/09/2008
Il codice sopra funziona benissimo ma poi voglio fare delle query, su dei
particolari intervalli di tempo ,con un codice sotto dove non faccio altro
che aggiungere un where sulla data:
codice:
SELECT PunteggiSquadre.Squadra, Sum(PunteggiSquadre.Punti) AS P,
Sum(PunteggiSquadre.GoalFatti) AS GF, Sum(PunteggiSquadre.GoalSubiti) AS GS
FROM (SELECT casa AS Squadra,
Iif(ris_casa=ris_fuori,1,Iif(ris_casa>ris_fuori,3,0)) as
Punti,ris_casa AS GoalFatti,ris_fuori AS GoalSubiti
FROM campionato_calendario
WHERE ris_casa IS NOT NULL and (((campionato_calendario.data) Between
[@data_inizio_cale] And [@data_fine_cale]))
UNION ALL
SELECT fuori AS Squadra,
Iif(ris_casa=ris_fuori,1,Iif(ris_casa>ris_fuori,0,3)) as Punti,
ris_fuori AS GoalFatti,ris_casa AS GoalSubiti
FROM campionato_calendario
WHERE ris_fuori IS NOT NULL and (((campionato_calendario.data)
Between [@data_inizio_cale] And [@data_fine_cale]))
) AS PunteggiSquadre
GROUP BY PunteggiSquadre.Squadra
ORDER BY Sum(PunteggiSquadre.Punti) DESC ,
Sum(PunteggiSquadre.GoalFatti)-Sum(PunteggiSquadre.GoalSubiti) DESC;
MI SEMBRAVA funzionasse tutto ... invece ho scoperto che si crea una
classifica completamente sballata (mentre risultato corretti i goal fatti e
subiti)! riuscite a capire dove potrebbe inserirsi l'errore?
NB: la query se interroga solo una giornata da un risultato corretto ma se
già interroga due giornate è sbagliatissima
GRAZIE di qualsiasi aiuto