Classifica calcistica con punti di penalizzazione

di Anonimizzato19237 il
4 risposte
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

  • Ma perché non continui sull'altro forum dove qualcuno ti ha già risposto chiedendoti altre informazioni
    invece di postare qui più volte in sezioni diverse
  • Ciao, si scusami non sapevo in realtà la sezione giusta. Perchè se scrivo nell'altro forum qui non posso ripostare una questione? Magari c'è qualcuno che mi può suggerire delle cose diverse...
  • Tiziano79 ha scritto:


    Perchè se scrivo nell'altro forum qui non posso ripostare una questione? Magari c'è qualcuno che mi può suggerire delle cose diverse...
    il crossposting selvaggio non è una pratica accettata su tutti i forum;
    leggi il regolamento di questo:
    https://www.iprogrammatori.it/forum-programmazione/regolamento.php
  • Ah ecco! Chiaro, va bene vediamo allora come va, nel caso chiedo qui, nel frattempo se qualcuno può aiutarmi meglio...
Devi accedere o registrarti per scrivere nel forum
4 risposte