codice:
SELECT squadra,nome_squadra,
SUM(if(fatti!='',1,0)) AS partite,
SUM(if(punt2p=2,1,0)) AS vit_2p,
SUM(if(punt2p=1,1,0)) AS pareggi2p,
SUM(if(punt3p=3,1,0)) AS vit_3p,
SUM(if(punt3p=1,1,0)) AS pareggi3p,
SUM(punt2p) AS punt2p,
SUM(punt3p) AS punt3p,
SUM(punt2p)+SUM(punt3p)-MAX(campionati_SerieA.penalita) AS punteggio,
SUM(fatti) AS fatti,
SUM(subiti) AS subiti,
SUM(fatti)-SUM(subiti) AS diff_reti
FROM
(SELECT sq_casa AS squadra, gol_sq_casa_and AS fatti, gol_sq_osp_and AS subiti,
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 punt2p, 0 AS punt3p
FROM partite_SerieA WHERE id_stagione < '63'
UNION ALL
SELECT sq_osp AS squadra, gol_sq_osp_and AS fatti, gol_sq_casa_and AS subiti,
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 punt2p, 0 AS punt3p
FROM partite_SerieA WHERE id_stagione < '63'
UNION ALL
SELECT sq_casa AS squadra, gol_sq_casa_rit AS fatti, gol_sq_osp_rit AS subiti,
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 punt2p, 0 AS punt3p
FROM partite_SerieA WHERE id_stagione < '63'
UNION ALL
SELECT sq_osp AS squadra, gol_sq_osp_rit AS fatti, gol_sq_casa_rit AS subiti,
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 punt2p, 0 AS punt3p
FROM partite_SerieA WHERE id_stagione < '63'
UNION ALL
SELECT sq_casa AS squadra, gol_sq_casa_and AS fatti, gol_sq_osp_and AS subiti, 0 AS punt2p,
CASE
WHEN gol_sq_casa_and > gol_sq_osp_and THEN 3
WHEN gol_sq_casa_and = gol_sq_osp_and AND gol_sq_casa_and <> '' THEN 1
ELSE 0
END AS punt3p
FROM partite_SerieA WHERE id_stagione >= '63'
UNION ALL
SELECT sq_osp AS squadra, gol_sq_osp_and AS fatti, gol_sq_casa_and AS subiti, 0 AS punt2p,
CASE
WHEN gol_sq_osp_and > gol_sq_casa_and THEN 3
WHEN gol_sq_osp_and = gol_sq_casa_and AND gol_sq_osp_and <> '' THEN 1
ELSE 0
END AS punt3p
FROM partite_SerieA WHERE id_stagione >= '63'
UNION ALL
SELECT sq_casa AS squadra, gol_sq_casa_rit AS fatti, gol_sq_osp_rit AS subiti, 0 AS punt2p,
CASE
WHEN gol_sq_casa_rit > gol_sq_osp_rit THEN 3
WHEN gol_sq_casa_rit = gol_sq_osp_rit AND gol_sq_casa_rit <> '' THEN 1
ELSE 0
END AS punt3p
FROM partite_SerieA WHERE id_stagione >= '63'
UNION ALL
SELECT sq_osp AS squadra, gol_sq_osp_rit AS fatti, gol_sq_casa_rit AS subiti, 0 AS punt2p,
CASE
WHEN gol_sq_osp_rit > gol_sq_casa_rit THEN 3
WHEN gol_sq_osp_rit = gol_sq_casa_rit AND gol_sq_osp_rit <> '' THEN 1
ELSE 0
END AS punt3p
FROM partite_SerieA WHERE id_stagione >= '63'
) AS tab
JOIN squadre_SerieA ON squadra=squadre_SerieA.id_squadra
JOIN campionati_SerieA ON squadra=campionati_SerieA.idsquadra
GROUP BY squadra
ORDER BY punteggio DESC, diff_reti DESC, fatti DESC, nome_squadra