我对SQL很陌生。我想计算今年在表中创建的二月(或所有月份)的记录数,如果还没有为我想计算去年的月份创建记录数的月份创建记录。结果应该会随着年份而变化,当我们到达4月1日时,结果应该显示0条记录。
我尝试使用一个案例,它"工作"时,没有新的记录为今年,它会显示去年创建的记录数量为月份,但例如一月,我们有记录创建,和总和成为今年的记录在一月加上记录从去年一月的总和。我认为案例时,应该退出时,第一个什么时候是真的。任何建议?
我的代码:
SELECT
COUNT(`user_activity`.`creation_date`) AS `ticket_count`
FROM
`user_activity`
WHERE
CASE
WHEN (Year(creation_date)=Year(curdate()) and MonthName(curdate())='January' is not null) >0
THEN ((MONTHNAME(`user_activity`.`creation_date`) = 'January') AND Year(`user_activity`.`creation_date`)=year(curdate())))
when(Year(creation_date)=Year(curdate())-1 and MonthName(curdate())='January' is not null) >0
then
((MONTHNAME(`user_activity`.`creation_date`) = 'January') AND (Year(`user_activity`.`creation_date`)=year(curdate())-1))
END;
1条答案
按热度按时间mhd8tkvw1#
获取查询的一个简单方法是运行两个查询,分别为年/月返回一行,然后在它们之间应用合并,只获取HAS记录的第一个计数值。如果今年没有,则从去年获取计数。