我需要从一个表中提取数据,该表的日期存储在单独的YEAR和MONTH列中......
我需要在过去两年内提取数据......
这就是我所拥有的:
SELECT
st_year as YEAR,
st_month as MONTH,
count(*)
FROM
V1_Stable
WHERE
st_year IS NOT NULL
AND
st_month IS NOT NULL
GROUP BY
st_year, st_month
ORDER BY YEAR ASC, MONTH ASC;
基本上,这可以获得我需要的数据,但我需要将其限制为仅回溯24个月,并且不包括当前月份的数据。
我尝试添加:
AND
(st_month != '$currentMonth' AND st_year != '$currentYear')
但是这只会删除当前年份以及与当月匹配的任何月份的所有记录......
答案 0 :(得分:0)
执行此操作的一种方法是将年/月列转换为数月计数。这允许您在不涉及日期的情况下进行计算。 where
子句的相关部分是:
where st_year * 12 + st_month >= year(now()) * 12 + month(now()) - 24
编辑:
如果您不想要当前月份,那么只需使用相同的逻辑:
where st_year * 12 + st_month >= year(now()) * 12 + month(now()) - 24 and
st_year * 12 + st_month < year(now()) * 12 + month(now())