如何在MySQL中创建每月总计查询?

时间:2010-01-18 07:37:58

标签: mysql statistics

我有以下数据库。

CREATE TABLE IF NOT EXISTS `omc_order` (
  `order_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `customer_id` int(10) unsigned NOT NULL,
  `total` decimal(10,2) NOT NULL,
  `order_date` datetime NOT NULL,
  `delivery_date` datetime NOT NULL,
  `payment_date` datetime NOT NULL,
  PRIMARY KEY (`order_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=32;

我想创建一个统计页面,以查看每月的总付款和总订单。

在一个页面中我想显示这样的内容。

Month    Year    Total Order    Total Payment
Sep       09       800             760
Oct       09       670             876
Nov
...
...

现在我不确定如何为此创建查询。

有人能给我一些想法如何解决这个问题吗?

3 个答案:

答案 0 :(得分:7)

您可以使用Mysql date and time functions对每个月的行进行分组,然后将它们相加。这样的事情可能是一个起点:

  SELECT monthname(payment_date) AS Month,
         year(payment_date) AS Year,
         sum(total) AS 'Total Order',
         sum(??) AS 'Total Payment'
    FROM omc_order
ORDER BY payment_date
GROUP BY month(payment_date),
         year(payment_date);

我不确定如何计算Total Payment的值。

修改sum()MySQL function

答案 1 :(得分:0)

您需要将日期时间转换为装载,然后按

分组
SELECT SUM(foo), MONTH(mydate) DateOnly FROM a_table GROUP BY DateOnly; 

看一个接近的问题:

MySQL/SQL: Group by date only on a Datetime column

答案 2 :(得分:0)

以下内容可帮助您入门。

select sum(total) from omc_order group by month(order_date), year(order_date)