codice:
create table `fatture` (
`id` int(11) not null auto_increment,
`id_fattura` int(11) default null,
`cliente` varchar(50) default null,
`importo` int(11) default null,
primary key (`id`)
) engine=myisam auto_increment=9 default charset=latin1;
insert into `fatture`(`id`,`id_fattura`,`cliente`,`importo`) values
(1,1,'mario',10),
(2,2,'mario',20),
(3,3,'giovanni',5),
(4,4,'mario',30),
(5,5,'luca',50),
(6,6,'luca',40),
(7,7,'andrea',5),
(8,8,'andrea',7);
select if(id is null,concat('Totale ',cliente),cliente) as cliente,
if(id is null,'',id_fattura) as id_fattura,
if(id is null,'',importo) as importo,
totale from (
select p.*,t.* from (
select id,id_fattura,importo,cliente,sum(importo) as totale
from fatture
group by cliente,id with rollup) as t
inner join (select cliente as cli,sum(importo) as tot from fatture group by cliente) as p
on t.cliente = p.cli) as c
order by tot,isnull(id),id_fattura