Classifica calcistica con punti di penalizzazione

di il
4 risposte

Classifica calcistica con punti di penalizzazione

Ciao a tutti!
Sto usando il codice SQL per la mia classifica, questo:
SELECT squadra,squadre_SerieA.nome_squadra,
SUM(if(fatti!='',1,0)) AS partite,
SUM(if(punteggio=2,1,0)) AS vittorie,
SUM(if(punteggio=1,1,0)) AS pareggi,
SUM(if(punteggio=0 AND fatti != '',1,0)) AS sconfitte,
SUM(punteggio) AS punteggio,
SUM(fatti) AS fatti,
SUM(subiti) AS subiti,
SUM(fatti)-SUM(subiti) AS diff_reti,
SUM(if(dove='C',fatti,0)) as fatti_casa,
SUM(if(dove='T',fatti,0)) as fatti_trasferta,
SUM(if(dove='C',subiti,0)) as subiti_casa,
SUM(if(dove='T',subiti,0)) as subiti_trasferta,
SUM(if(punteggio=2 and dove = 'C',1,0)) AS vittorie_casa,
SUM(if(punteggio=1 and dove = 'C',1,0)) AS pareggi_casa,
SUM(if(punteggio=0 and dove = 'C' AND fatti != '',1,0)) AS sconfitte_casa,
SUM(if(punteggio=2 and dove = 'T',1,0)) AS vittorie_trasferta,
SUM(if(punteggio=1 and dove = 'T',1,0)) AS pareggi_trasferta,
SUM(if(punteggio=0 and dove = 'T' AND fatti != '',1,0)) AS sconfitte_trasferta
FROM
(SELECT sq_casa AS squadra, gol_sq_casa_and AS fatti, gol_sq_osp_and AS subiti,'C' AS dove, 
case
WHEN gol_sq_casa_and > gol_sq_osp_and THEN 2
WHEN gol_sq_casa_and = gol_sq_osp_and AND gol_sq_casa_and <> '' THEN 1
ELSE 0
end AS punteggio
FROM partite_SerieA WHERE id_stagione='51'
UNION ALL
SELECT sq_osp AS squadra, gol_sq_osp_and AS fatti, gol_sq_casa_and AS subiti,'T',
case
WHEN gol_sq_osp_and > gol_sq_casa_and THEN 2
WHEN gol_sq_osp_and = gol_sq_casa_and AND gol_sq_osp_and <> '' THEN 1
ELSE 0
end AS punteggio
FROM partite_SerieA WHERE id_stagione='51'
UNION ALL
SELECT sq_casa AS squadra, gol_sq_casa_rit AS fatti, gol_sq_osp_rit AS subiti,'C' AS dove,
case
WHEN gol_sq_casa_rit > gol_sq_osp_rit THEN 2
WHEN gol_sq_casa_rit = gol_sq_osp_rit AND gol_sq_casa_rit <> '' THEN 1
ELSE 0
end AS punteggio
FROM partite_SerieA WHERE id_stagione='51'
UNION ALL
SELECT sq_osp AS squadra, gol_sq_osp_rit AS fatti, gol_sq_casa_rit AS subiti,'T',
case
WHEN gol_sq_osp_rit > gol_sq_casa_rit THEN 2
WHEN gol_sq_osp_rit = gol_sq_casa_rit AND gol_sq_osp_rit <> '' THEN 1
ELSE 0
end AS punteggio
FROM partite_SerieA WHERE id_stagione='51'
) AS tab
JOIN squadre_SerieA ON squadra=squadre_SerieA.id_squadra
GROUP BY squadra
ORDER BY punteggio DESC, diff_reti DESC, nome_squadra
questo script recupera i dati da una tabella chiamata "partite_SerieA" e mi crea una classifica, funziona alla grande, ma dovrebbe tenere conto anche degli eventuali punti di penalizzazione che potrebbero esserci, questi sono salvati in un'altra tabella chiamata "campionati_SerieA" dove è presente una colonna chiamata "penalita", visto che già questo script mette in relazione già un'altra tabella chiamata "squadre_SerieA", che mi recupera i nome delle squadre, pensavo potessi allo stesso modo fare con quella che mi serve ora, ma provando in diversi modi non riesco a trovare una soluzione. Spero di essermi spiegato, qualcuno può aiutarmi a capire come fare?

Grazie a tutti!
Tiziano

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte