mysql需要显示所选年份的所有月份数据

时间:2017-09-22 15:06:22

标签: php mysql phpmyadmin

我的查询陷入困境。我需要显示每月(当前+之前)的记录。

让我们以2014年的例子为例: -

我在03月(3月)有7条记录

我在04年4月(4月)有2条记录

所以2014年的总记录是9。

现在我们来到2015年: -

我需要在Jan中显示所有记录(数据库中没有添加新记录),这应该是9.

我的查询显示为0。

我需要在2月显示所有记录(数据库中添加了5条新记录),这应该是14。

我的查询显示5。

当我检查第03和第2014年时,查询工作正常,显示所有7条记录。但不适用于所有条件。

  

我正在调用相同的查询来逐个获取所有月份(01-12)数据。

SELECT count(pkID) as TRecords 
FROM   students 
WHERE  (fkCategoryID ='56' 
OR     fkSecondaryCategoryID ='56' 
OR     fkOptionalCategoryID ='56') 
AND    MONTH(`DateAdded`) <='1' 
AND    YEAR(`DateAdded`) <='2015';

2 个答案:

答案 0 :(得分:2)

AND    MONTH(`DateAdded`) <='1' 

想一想。你不会发现一个月小于1.月和月属于一起;不要单独看它们。

SELECT COUNT(pkID) as TRecords 
FROM students 
WHERE (fkCategoryID = 56 OR fkSecondaryCategoryID = 56 OR fkOptionalCategoryID = 56)
AND DATE_FORMAT(DateAdded, '%Y%m') <= '201501';

答案 1 :(得分:0)

在你的where子句中,你正在做&lt; =(小于或等于)。我希望你只需要=(等于)您的年份和月份。当然,你的年份应该只是=(等于)。