#запрос #mysql
Есть такой запрос SELECT SUM(`total`) AS `sum`,CONCAT_WS('-',year(FROM_UNIXTIME(`unix`)),DATE_FORMAT(FROM_UNIXTIME(`unix`),'%m')) AS `key` FROM `shop_orders` WHERE `status` NOT IN (1,6) AND `unix` BETWEEN ".(int)$start." AND ".(int)$end." GROUP BY `key` Возвращает он массив данных формата [2012-08] => 4252.00 В переменных $start и $end unix-даты начала августа 2011 и конца августа 2012 соответственно. Если в БД нет записей с датой какого-нибудь месяца, то ключ с этой датой естественно отсутствует, это логично. Вопрос: возможно ли перестроить запрос таким образом, чтоб ключи были в любом случае, а если данные отсутствуют, то значение было 0? Пример (при отсутствии данных в БД за апрель и июнь): [2012-04] => 0 [2012-05] => 152.00 [2012-06] => 0 [2012-07] => 5721.00 [2012-08] => 4252.00
Ответы
Ответ 1
Воспользуйтесь ф-цией IFNULL()
Комментариев нет:
Отправить комментарий