2013-05-31 105 views
-1

我需要使用名爲「orders」的數據庫生成日常銷售統計信息,其中一個字段稱爲「date」(DATETIME)。使用MySQL生成每日統計信息

我的查詢很簡單:

​​

的問題是,如果舉例來說,昨天是沒有銷售,昨天不會對結果顯示 ,但我需要它與0值顯示。

我的實際結果示例(日/銷售):27/3,29/4,30/2 我需要的結果示例(日/銷售):27/3,28/0,29/4 ,30/2,31/0

在此先感謝!

回答

0

創建一個表calendar,與所有日子,並加入你的表在這個日曆上。

一種方法來創建日曆表:

http://www.richnetapps.com/using-mysql-generate-daily-sales-reports-filled-gaps/

然後

SELECT Day(c.cal_date), COALESCE(COUNT(z.id_order), 0) 
FROM calendar c 
LEFT JOIN z_view_order_list z ON z.date = c.cal_date 
WHERE WEEK(c.cal_date) = WEEK(NOW()) 
GROUP BY DAY(c.cal_date) 
LIMIT 7 

THE DAY

不要爲你的領域使用日期作爲名稱的意見。日期是一種功能類型,儘量避免混淆...

+0

感謝您的迴應!我非常感謝,但我不想增加數據庫的複雜性。我已經通過軟件解決了這個問題,在我的代碼(php)中通過以下方式創建和排列上個月的日期: for($ x = 0; $ x <7; $ x ++)$ arrDays = date(「d」 ,time() - $ x * 86400); 感謝您對我的幫助和建議 – Manuel