codice:
-- Dump e query classifica calcio
create table `campionato` (
`id` int(11) not null auto_increment,
`sq_casa` varchar(50) default null,
`sq_trasferta` varchar(50) default null,
`gol_casa` tinyint(4) default null,
`gol_trasferta` tinyint(4) default null,
primary key (`id`)
) engine=innodb auto_increment=11 default charset=latin1;
/*Data for the table `campionato` */
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (1,'Juve','Milan',3,1);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (2,'Inter','Juve',1,1);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (3,'Roma','Lazio',4,3);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (4,'Fiorentina','Milan',2,2);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (5,'Juve','Fiorentina',1,1);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (6,'Cagliari','Inter',1,2);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (7,'Genoa','Cagliari',0,2);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (8,'Napoli','Juve',2,3);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (9,'Milan','Livorno',2,1);
insert into `campionato` (`id`,`sq_casa`,`sq_trasferta`,`gol_casa`,`gol_trasferta`) values (10,'Inter','Milan',2,1);
select squadra,
count(squadra) as partite,
sum(if(punteggio=3,1,0)) as vittorie,
sum(if(punteggio=1,1,0)) as pareggi,
sum(if(punteggio=0,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(punteggio=3 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",1,0)) as sconfitte_casa,
sum(if(punteggio=3 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",1,0)) as sconfitte_trasferta
from
(
select sq_casa as squadra,gol_casa as fatti,gol_trasferta as subiti,"C" as dove,
case
when gol_casa > gol_trasferta then 3
when gol_casa = gol_trasferta then 1
else 0
end as punteggio
from campionato
union all
select sq_trasferta as squadra,gol_trasferta as fatti,gol_casa as subiti,"T",
case
when gol_trasferta > gol_casa then 3
when gol_trasferta = gol_casa then 1
else 0
end as punteggio
from campionato
) as tab
group by squadra
order by punteggio desc
Probabile ci siano più dati di quelli che ti occorrono. Togli il superfluo.