2010-11-24 22 views
0

我在 “销售” 表有日期时间字段名 “salestime”MySQL的具体查询需求

我需要得到的数据为:

SalesMonthYear  Total 
2010-11    10 
2010-10    15 
2010-09    21 

Nov-2010   10 
Oct-2010   15 
Sep-2010   21 

任何一个知道如何我可以使用查询来实现这个吗? 感谢您的帮助

回答

0
SELECT DATE_FORMAT(salesTime, '%Y-%m') AS salesMonthYear, 
     COUNT(*) AS salesCount 
FROM sales 
GROUP BY DATE_FORMAT(salesTime, '%Y-%m') 
1

您需要使用DATE_FORMATGROUP BY才能达到您想要的效果。这个查询将做到这一点:

SELECT DATE_FORMAT(salestime, '%Y-%m') as SalesMonthYear, count(*) as `Total` FROM `sales` GROUP BY SalesMonthYear ORDER BY `salestime` 

而对第二个版本:

SELECT DATE_FORMAT(salestime, '%b-%Y') as SalesMonthYear, count(*) as `Total` FROM `sales` GROUP BY SalesMonthYear ORDER BY `salestime` 
+0

感谢,但我认为DATE_FORMAT(`salestime`, '%Y-%M'),而不是在你提到的方式 – 2010-11-24 12:22:32

+0

哦,是的,我匆匆把它搞砸了。 – shamittomar 2010-11-24 12:27:27