Ciao Optime!
Ok è fatta! la query mi visualizza le due colonne con la somma dei punti dei due campionati da 2 e da 3 punti a vittoria!
Ho un quesito però che probabilmente tu mi potresti illuminare, allora per risolvere il problema dei pareggi e sconfitte come mi hai detto tu ho incapsulato e poi sommato così:
codice:
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(punt2p=0 AND fatti!= '',1,0)) AS sconfitte2p,
SUM(if(punt3p=3,1,0)) AS vit_3p,
SUM(if(punt3p=1,1,0)) AS pareggi3p,
SUM(if(punt3p=0 AND fatti!= '',1,0)) AS sconfitte3p,
SUM(punt2p) AS punt2p,
SUM(punt3p) AS punt3p,
SUM(punt2p)+SUM(punt3p) AS punteggio,
SUM(fatti) AS fatti,
SUM(subiti) AS subiti,
SUM(fatti)-SUM(subiti) AS diff_reti
FROM...ecc...
Ora i pareggi me li conta giusti, invece le sconfitte mi calcola dei valori che non riesco proprio a capire dove il prenda...ti copio tutta la query:
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(punt2p=0 AND fatti!= '',1,0)) AS sconfitte2p,
SUM(if(punt3p=3,1,0)) AS vit_3p,
SUM(if(punt3p=1,1,0)) AS pareggi3p,
SUM(if(punt3p=0 AND fatti!= '',1,0)) AS sconfitte3p,
SUM(punt2p) AS punt2p,
SUM(punt3p) AS punt3p,
SUM(punt2p)+SUM(punt3p) 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
GROUP BY squadra
ORDER BY punteggio DESC, diff_reti DESC, fatti DESC, nome_squadra
a logica mi sembrava che si potesse fare come i pareggi con:
codice:
SUM(if(punt2p=1,1,0)) AS pareggi2p
e
codice:
SUM(if(punt3p=1,1,0)) AS pareggi3p
invece sembra di no...
Ti copio un esempio dal mio mysql come esce:
squadra |
nome_squadra |
partite |
vit_2p |
pareggi2p |
sconfitte2p |
vit_3p |
pareggi3p |
sconfitte3p |
punt2p |
punt3p |
punteggio |
fatti |
subiti |
diff_reti |
|
71 |
Juventus |
2886 |
1034 |
583 |
1269 |
549 |
203 |
2134 |
2651 |
1850 |
4501 |
5038 |
2722 |
2316 |
72 |
Inter |
2924 |
970 |
588 |
1366 |
474 |
229 |
2221 |
2528 |
1651 |
4179 |
4892 |
3029 |
1863 |
69 |
Milan |
2864 |
914 |
602 |
1348 |
463 |
248 |
2153 |
2430 |
1637 |
4067 |
4676 |
2928 |
1748 |