Questa dovrebbe essere, più o meno, una classifica in stile Televideo RAI:
Codice:
SELECT squadra, SUM(punti) AS punteggio, SUM(p_vinte) AS vinte, SUM(p_nulle) AS nulle, SUM(p_perse) AS perse, SUM(r_segnate) AS gol_segnati, SUM(r_subite) AS gol_subiti
FROM (
SELECT sq_casa AS squadra, IF(gol_casa > gol_trasferta, 3, IF(gol_casa = gol_trasferta, 1, 0)) AS punti, IF(gol_casa > gol_trasferta, 1, 0) AS p_vinte, IF(gol_casa = gol_trasferta, 1, 0) AS p_nulle, IF(gol_casa < gol_trasferta, 1, 0) AS p_perse, gol_casa AS r_segnate, gol_trasferta AS r_subite
FROM campionato
UNION ALL
SELECT sq_trasferta AS squadra, IF(gol_casa < gol_trasferta, 3, IF(gol_casa = gol_trasferta, 1, 0)) AS punti, IF(gol_casa < gol_trasferta, 1, 0) AS p_vinte, IF(gol_casa = gol_trasferta, 1, 0) AS p_nulle, IF(gol_casa > gol_trasferta, 1, 0) AS p_perse, gol_trasferta AS r_segnate, gol_casa AS r_subite
FROM campionato
) AS tab_punti
GROUP BY tab_punti.squadra
ORDER BY punteggio DESC
Spiegone della logica: all'inizio crei una tabella temporanea in cui associ a ciascuna squadra e ciascuna partita:
- il punteggio assegnato alla partita (3, 1, 0 punti)
- se la partita è stata vinta (1) o no (0)
- se la partita è stata pareggiata (1) o no (0)
- se la partita è stata persa (1) o no (0)
- quante reti ha segnato la squadra
- quante reti ha segnato la squadra avversaria (reti subite)
Una volta ottenuta questa tabella, ti basta eseguire la somma per colonne, raggruppando per il nome della squadra.
Stammi bene...