【发布时间】:2018-10-16 14:18:29
【问题描述】:
我一直在处理返回过去 6 个月的查询,例如:
如果当前月份是 2018 年 4 月,则查询应返回最近 6 个月的记录,例如:
- 2017 年 11 月
- 2017 年 12 月
- 2018 年 1 月
- 2018 年 2 月
- 2018 年 3 月
- 2018 年 4 月
我目前的查询是:
SELECT DISTINCT
monthname(batchEndDate) AS month,
batchDetails.bATCHiD,
batchDetails.batchEndDate,
COUNT(EnrollmentNumber) AS count
FROM candidate
INNER JOIN batchdetails
ON candidate.batchId = batchDetails.batchId
WHERE (assessmentResult = "pass"
OR assessmentResult = "fail")
AND YEAR(batchEndDate) BETWEEN YEAR(batchEndDate) - 1
AND YEAR(curdate())
GROUP BY MONTH(batchEndDate)
ORDER BY month(batchEndDate);
【问题讨论】:
-
我建议您阅读“我为什么要为我认为非常简单的 SQL 查询提供 MCVE?” meta.stackoverflow.com/questions/333952/…
-
select distinct monthname(batchEndDate) as month,batchDetails.bATCHiD, batchDetails.batchEndDate,count(EnrollmentNumber) as count..group by month(batchEndDate)is invalid ANSI SQL.. MySQL 允许这样做,但您可以获得不属于 group by 的非聚合列的无效数据
标签: mysql