我有一张表如下
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笔交易等。
答案 0 :(得分:1)
MySQL的开发人员花了相当长的时间来开发出很棒的date functions - 你应该使用它们。由于您已将invoice_year
作为invoice_month
格式列,因此不需要invoice_date
和date
。你可以使用
SELECT invoice_date, count(*)
FROM titas_clp_invoice_master
GROUP BY YEAR(invoice_date), MONTH(invoice_date)