Você já olhou para WITH ROLLUP do MySQL opção. Algo assim SELECT date,amount,item_id FROM table GROUP BY date,item_id WITH ROLLUP