http://www.artfulsoftware.com/infotree/qrytip.php?id=78
el ejemplo desglozado por si te da pereza leer:
Código MySQL:
Ver original(1, 2005, 12000),(1, 2006, 18000),(1, 2007, 25000),
(2, 2005, 15000),(2, 2006, 6000),(3, 2006, 20000),(3, 2007, 24000);
IFNULL(empId
,'Totals') AS EmpId
, -- outer query labels rollup row sums.2005, sums.2006, sums.2007, -- and calculates horizontal sums
sums.2005
+ sums.2006
+ sums.2007
AS Sums
FROM ( -- inner query groups by employee SELECT -- with an expression for each column EmpID,
SUM(IF(Yr
=2005,sales
,0)) As '2005', SUM(IF(Yr
=2006,sales
,0)) As '2006', +--------+----------+----------+----------+-----------+
| EmpId | 2005 | 2006 | 2007 | Sums |
+--------+----------+----------+----------+-----------+
| 1 | 12000.00 | 18000.00 | 25000.00 | 55000.00 |
| 2 | 15000.00 | 6000.00 | 0.00 | 21000.00 |
| 3 | 0.00 | 20000.00 | 24000.00 | 44000.00 |
| Totals | 27000.00 | 44000.00 | 49000.00 | 120000.00 |
+--------+----------+----------+----------+-----------+
Lo que se busca en ese ejemplo es sacar las ventas de cada año, aqui tendrias que acomodarlo a tus necesidades, en lugar de sum por year sum por precio y cantidad