【发布时间】:2014-09-24 21:45:31
【问题描述】:
我有一张开始日期和结束日期的表格 - 主要是一整年,但从任何月份开始。
我想获得一份关于每年当前月份活跃的行数的报告。就像计数 - 当前、去年计数、2 年前计数等
我在 PHP 中构建我的查询,因此我可以轻松地在子查询的日期或总和中使用 sum(case when then end) 和硬代码,但我认为可能有更好的方法。有什么想法吗?
【问题讨论】:
-
group by year(datefield), month(datefield) where month(datefield)=$month_you_want? -
我有两个日期 - 我检查的日期不太可能是开始或结束。本月是 9 月份连续活跃的年份。例如:2010 年 11 月 1 日 - 2011 年 10 月 31 日将返回 2011 年 例如:2010 年 8 月 1 日 - 2011 年 7 月 31 日将返回 2010 年
-
我想我会用这个
CASE WHEN MONTH(enddate) < MONTH(NOW()) THEN YEAR(enddate)-1 ELSE YEAR(enddate) END AS yeargroup运行当日期跨度很短时可能会遇到问题,所以我也需要考虑到这一点。 -
并进一步简化为
YEAR(enddate) - IF( MONTH(enddate) < MONTH(NOW()), 1, 0),但仍然没有检查开始日期...
标签: mysql