如何在mysql

时间:2016-03-07 13:20:59

标签: mysql

我有一张表如下

CREATE TABLE IF NOT EXISTS `titas_clp_invoice_master` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `customer_id` bigint(20) NOT NULL,
  `store_id` bigint(20) NOT NULL,
  `invoice_no` varchar(255) NOT NULL,
  `invoice_date` date NOT NULL,
  `amount` bigint(255) NOT NULL,
  `product_name` varchar(255) NOT NULL,
  `isdeleted` varchar(1) NOT NULL,
  `invoice_month` varchar(255) NOT NULL,
  `invoice_year` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=20 ;

现在我想要这样的东西

一年中每个月的总交易额。比如2015年12月的1笔交易,2016年1月的2笔交易,2016年2月的3笔交易等。

1 个答案:

答案 0 :(得分:1)

MySQL的开发人员花了相当长的时间来开发出很棒的date functions - 你应该使用它们。由于您已将invoice_year作为invoice_month格式列,因此不需要invoice_datedate。你可以使用

SELECT invoice_date, count(*) 
FROM titas_clp_invoice_master
GROUP BY YEAR(invoice_date), MONTH(invoice_date)