当GroupByMonth返回NULL时获得0

时间:2015-05-04 09:40:22

标签: mysql

我试图用mysql获取值,但是当它没有值时,它在特定月份没有给出...

我尝试了IFNULL,但是它变得相同而且在空月中没有返回0。

 SELECT MONTHNAME(`date`) FROM `wp_biletistatus` WHERE `user_id`= 1
 GROUP BY MONTH(`date`) ORDER BY `date` ASC Limit 10

以下是我想要获得的几个月的查询:

{{1}}

有人可以帮助我如何在没有价值的月份获得0。

1 个答案:

答案 0 :(得分:1)

你没有在没有价值的月份获得零的原因是因为它根本不存在。您需要具有修订值或至少具有所有月份列表的子查询,例如。

SELECT months.MonthNum,
    COUNT(a.bileti_id) 
FROM    (
    SELECT 1 AS MonthNum UNION ALL SELECT 2 UNION ALL
    SELECT 3  UNION ALL SELECT 4 UNION ALL
    SELECT 5  UNION ALL SELECT 6 UNION ALL
    SELECT 7  UNION ALL SELECT 8 UNION ALL
    SELECT 9  UNION ALL SELECT 10 UNION ALL
    SELECT 11  UNION ALL SELECT 12
    ) months
    LEFT JOIN wp_biletistatus a
        ON months.MonthNum = MONTH(a.date)
WHERE a.user_id= 1 and a.status=1 
GROUP BY months.MonthNum  
ORDER BY months.MonthNum