选择过去三个月的记录

时间:2010-02-05 09:46:01

标签: sql ms-access

我有2个表,我需要运行一个查询来显示用户在过去3个月内的观看次数。

到目前为止,我已经提出:所有的字段类型都是正确的。

 SELECT dbo_LU_USER.USERNAME
 , Count(*) AS No_of_Sessions
 FROM dbo_SDB_SESSION 
   INNER JOIN dbo_LU_USER 
     ON dbo_SDB_SESSION.FK_USERID = dbo_LU_USER.PK_USERID
 WHERE (((DateDiff("m",[dbo_SDB_SESSION].[SESSIONSTART],Now()))=0 
   Or (DateDiff("m",[dbo_SDB_SESSION].[SESSIONSTART],Now()))=1 
   Or (DateDiff("m",[dbo_SDB_SESSION].[SESSIONSTART],Now()))=2))
 GROUP BY dbo_LU_USER.USERNAME;

基本上,上面的代码显示过去3个月内所有记录的列表;但是,它从当月的第一天开始到当前日期结束,但我需要它在今天的日期之前3个月开始。

另请告知您这是MS Access 2007代码中的SQL视图。

提前致谢

1 个答案:

答案 0 :(得分:2)

根据您“严格”定义3个月规则的方式,通过尝试这一点,您可以使事情变得更加轻松和高效:

SELECT dbo_LU_USER.USERNAME, Count(*) AS No_of_Sessions 
FROM dbo_SDB_SESSION 
INNER JOIN dbo_LU_USER 
ON dbo_SDB_SESSION.FK_USERID = dbo_LU_USER.PK_USERID 
WHERE [dbo_SDB_SESSION].[SESSIONSTART] between now() and DateAdd("d",-90,now())
GROUP BY dbo_LU_USER.USERNAME;

(请理解我的MS SQL有点生疏,目前无法测试这个:想法是让查询扫描日期介于“TODAY”和“TODAY-90 days”之间的所有记录)