2015-09-05 105 views
0

有沒有辦法從數據庫中提取最近6個月的數據並顯示每月分開的數據。在我的情況下,我想獲取最近6個月的數據,將它們按各自的月份進行分組,並在morris條形圖中以月份形式顯示在圖表中。 在此先感謝!如何從數據庫和組每月數據中檢索最近六個月的數據

+0

沒有表定義和一些示例數據是不可能的 – amdixon

+0

我有一個包含訂單日期和其他相關數據的列'dynamicorders'。下面的查詢給了我上個月的數據。我還可以通過動態聲明日期間隔來獲取最近六個月的數據。 但是我怎麼能根據他們的月份分組數據?例如,我想顯示八月,七月,六月......三月份的客戶數量。 'SELECT product_name,customers,sum('order_total')as sales FROM dynamicorders WHERE order_status ='Shipped'AND MONTH(STR_TO_DATE(order_date,'%m /%d /%Y'))= MONTH(CURDATE() - INTERVAL 1月)' –

+1

有這個驚人的發明。有一些網站,你可以按月**鍵入短語如** mysql group data到文本框中。這些網站會查看*整個互聯網*,併爲您提供閱讀內容的建議。說真的,我低估了這個問題,因爲這個問題經常被詢問並以某種形式回答。 –

回答

0

這是您的解決方案: http://sqlfiddle.com/#!9/81776/1

create table dynamicorders (
    order_date date, 
    order_total int, 
    order_status char(10) 
); 

insert into dynamicorders values('2015-07-05', 705, 'Shipped'); 
insert into dynamicorders values('2015-07-15', 715, 'Shipped'); 
insert into dynamicorders values('2015-08-02', 802, 'Shipped'); 
insert into dynamicorders values('2015-08-12', 812, 'Closed'); 
insert into dynamicorders values('2015-08-29', 829, 'Shipped'); 
insert into dynamicorders values('2015-09-03', 903, 'Shipped'); 


SELECT 
Month(order_date) as month, 
sum(order_total) as sales 
FROM dynamicorders 
WHERE 
order_status='Shipped' 
GROUP BY Month(order_date); 

(如果訂單同年,否則你需要照顧往年也一樣,月月可2015年2014 ...等)

+1

讚賞。我認爲這就是我正在尋找的。謝謝。 –

+1

我想將過去六個月的數據組與當前月份進行分組,因此前一年不會成爲問題。 –