我的查询陷入困境。我需要显示每月(当前+之前)的记录。
让我们以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';
答案 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; =(小于或等于)。我希望你只需要=(等于)您的年份和月份。当然,你的年份应该只是=(等于)。