2014-06-16 69 views
2

我想知道過去三個月窯窯停了多少次。我有以下查詢:試圖獲得最近三個月的數據

SELECT SUM(kiln_no_stops) from monthly_report 
where date BETWEEN DATE_FORMAT(NOW() - INTERVAL 3 MONTH, '%m-%Y') 
AND DATE_FORMAT(NOW() , '%m-%Y') 

當我使用這個查詢我得到這個錯誤

未知列「日期」在「where子句」。

但我能夠使用下面的查詢來獲得去年一個月的數據:

SELECT SUM(kiln_no_stops) 
from monthly_report 
where date_format(yesterday,'%m-%Y')=Date_format(NOW() - INTERVAL 1 MONTH,'%m-%Y') 

我怎樣才能獲取數據「站總數」爲過去三個月?

+3

外觀像你的字段名稱是'昨天'而不是'日期' –

+0

比較日期時不應使用'%m-%Y'格式,使用'%Y-%m'。否則'12-2013'將會大於'01-2014'。 – Barmar

+0

'date'是mysql中的保留關鍵字。嘗試使用其他關鍵字,如tran_date等。這可能是問題。 –

回答

1

檢查,這將幫助你:

SELECT SUM(kiln_no_stops) 
from monthly_report 
where yesterday >= now()-interval 3 month; 

編輯:

爲了得到最近3個月的數據(March1到May31,當前日期= 6月18日)

SELECT SUM(kiln_no_stops) 
from monthly_report where month(yesterday) < month(now()) 
AND yesterday >= cast((last_day(now()) + interval 1 day - interval 4 month) as date); 
+0

我假設Monthly_report有一個名爲「YESTERDAY」的日期字段變量 –