SQL查询特定月份的活动

时间:2013-03-05 14:25:41

标签: sql reporting

我们有人在两个特定日期之间租用,例如2013年1月15日 - 2013年3月2日。我的任务是做一个“活跃”的活动。报告,每月有多少活动租赁。例如,这将显示在1月计数和2月计数中。

对此有任何帮助将不胜感激。我找了类似但没找到任何东西。我在sql中的知识主要是简单的添加/更改/删除代码。

3 个答案:

答案 0 :(得分:2)

SELECT * FROM `rentals` WHERE `date` BETWEEN '2013-03-04' AND '2013-04-04'

显然用你自己的表名和列名替换......这是MySQL,你没有指定你在发布时使用的数据库软件。

答案 1 :(得分:0)

查找两个日期之间“活动”的记录的一般方法是

 ...
 WHERE startDate <= @periodEnd AND endDate >= @periodStart

答案 2 :(得分:0)

如果您想在每个月找到活动项,则需要从月份列表开始,然后将它们与活动记录进行比较。我假设你每个月都有一个开始。

select months.yyyymm, count(*) as NumActives
from (select distinct to_char(startdate, 'yyyy-mm') as yyyymm
      from activity
     ) as months join
     activity a
     on yyyymm between to_char(a.startdate, 'yyyy-mm') and to_char(a.enddate, 'yyyy-mm')
group by months.yyyymm

我使用Oracle / Postgres函数to_char()将日期转换为年月表示。其他数据库有其他方法来实现相同的目标。