SELECT DATE_FORMAT(date, "%b") AS month, SUM(total_price) as total FROM cart WHERE date <= NOW() and date >= Date_add(Now(),interval - 12 month) GROUP BY DATE_FORMAT(date, "%m-%Y")
该查询仅显示现有月份的结果。我需要所有12个月的销售。
输出 :
"month" "total" -------------- "Jun" "22" "Aug" "30" "Oct" "19" "Nov" "123" "Dec" "410"
所需输出 :
"month" "total" -------------- "Jan" "0" "Feb" "0" "Mar" "0" "Apr" "0" "May" "0" "Jun" "22" "Jul" "0" "Aug" "30" "Sep" "0" "Oct" "19" "Nov" "123" "Dec" "410"
感谢@pankaj提示,在这里我通过此查询解决了…
SELECT SUM(IF(month = 'Jan', total, 0)) AS 'Jan', SUM(IF(month = 'Feb', total, 0)) AS 'Feb', SUM(IF(month = 'Mar', total, 0)) AS 'Mar', SUM(IF(month = 'Apr', total, 0)) AS 'Apr', SUM(IF(month = 'May', total, 0)) AS 'May', SUM(IF(month = 'Jun', total, 0)) AS 'Jun', SUM(IF(month = 'Jul', total, 0)) AS 'Jul', SUM(IF(month = 'Aug', total, 0)) AS 'Aug', SUM(IF(month = 'Sep', total, 0)) AS 'Sep', SUM(IF(month = 'Oct', total, 0)) AS 'Oct', SUM(IF(month = 'Nov', total, 0)) AS 'Nov', SUM(IF(month = 'Dec', total, 0)) AS 'Dec', SUM(total) AS total_yearly FROM ( SELECT DATE_FORMAT(date, "%b") AS month, SUM(total_price) as total FROM cart WHERE date <= NOW() and date >= Date_add(Now(),interval - 12 month) GROUP BY DATE_FORMAT(date, "%m-%Y")) as sub