2015-05-04 70 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以及。 –

相關問題