Здравствуйте, прошу помочь в следующем вопросе.
Допустим, есть такая таблица "orders":
id | date | status
---------------------------------
1 | 2014-04-14 xx:xx:xx | 0
---------------------------------
2 | 2014-04-14 xx:xx:xx | 0
---------------------------------
3 | 2014-04-14 xx:xx:xx | 1
---------------------------------
4 | 2014-04-13 xx:xx:xx | 1
---------------------------------
5 | 2014-04-12 xx:xx:xx | 2
Я делаю следующую выборку:
SELECT DATE_FORMAT(date, "%d.%m.%Y") as dayOrder,
CASE WHEN status = 0 THEN COUNT(*) ELSE 0 END as new,
CASE WHEN status = 1 THEN COUNT(*) ELSE 0 END as confirmed,
CASE WHEN status = 2 THEN COUNT(*) ELSE 0 END as refusal
FROM orders
GROUP BY DATE_FORMAT(date, "%d.%m.%Y"), status
Получаю такой результат:
dayOrder | new | confirmed | refusal
----------------------------------------
14.04.2014 | 2 | 0 | 0
----------------------------------------
14.04.2014 | 0 | 1 | 0
----------------------------------------
13.04.2014 | 0 | 1 | 0
----------------------------------------
12.04.2014 | 0 | 0 | 1
Как мне сделать выборку, чтобы привести результат к такому виду, то есть объединить все это дополнительно по дате?
dayOrder | new | confirmed | refusal
----------------------------------------
14.04.2014 | 2 | 1 | 0
----------------------------------------
13.04.2014 | 0 | 1 | 0
----------------------------------------
12.04.2014 | 0 | 0 | 1
Или, может, сделать как-то по-другому эту выборку, подскажите, пожалуйста.