Я рекомендую ответ @ MartinJansen - MySQL работает намного лучше по строкам, чем по столбцам, особенно , когда вы хотите извлечь только определенную неделю.
Однако, если вы хотите, чтобы это было по столбцам или если вы хотели, чтобы это длилось более одной конкретной недели, вы можете попробовать:
mysql> SELECT * from sales;
+------------+------+
| date | sold |
+------------+------+
| 2011-01-01 | 1 |
| 2011-01-02 | 10 |
| 2011-01-03 | 3 |
| 2012-01-01 | 10 |
| 2012-01-02 | 20 |
+------------+------+
SELECT CONCAT('week',WEEK(t.`date`)) as week,
SUM(IF(YEAR(t.`date`)=YEAR(DATE_ADD(NOW(), INTERVAL - 1 YEAR)),t.sold,0)) as `2011`,
SUM(IF(YEAR(t2.`date`)=YEAR(NOW()),t2.sold,0)) as `2012`
FROM sales t
LEFT JOIN sales t2
ON t.date = t2.date --could add WHERE WEEK(t.date)=... to restrict week
GROUP BY WEEK(t.date)
+-------+------+------+
| week | 2011 | 2012 |
+-------+------+------+
| week0 | 1 | 0 |
| week1 | 13 | 30 |
+-------+------+------+
(Вам нужно прочитать точное определение недель в MySQL).