2015-05-04 50 views
1

我真的试图让MySQL的价值,但它没有给出0特定月时,有没有它的值...获得0 GroupByMonth当它返回NULL

我试图IFNULL但它使同一而不是空的月份返回0。

SELECT IFNULL(COUNT(`bileti_id`),0) FROM `wp_biletistatus` WHERE 
`user_id`= 1 and `status`=1 GROUP BY MONTH(`date`) ORDER BY `date` ASC 
Limit 10 

这里是我的查询,以及为我想个月:

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

有人可以帮助我如何为它有没有价值数月得到0。

+0

提供一些示例数据集与您的表定义 –

+0

ID | bileti_id | status | user_id |点|日期 –

回答

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 
+0

它正在返回Months和Count结果,但仍然没有月份,结果为0 ...并且我只想计算结果与月份结果0以及。 –

相关问题