2015-09-05 70 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

我想将过去六个月的数据组与当前月份进行分组,因此前一年不会成为问题。 –