繁体   English   中英

选择过去三个月的记录

[英]Selecting records from the past three months

我有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视图。

提前致谢

根据您定义“三个月”规则的“严格程度”,您可以尝试以下操作,使事情变得更加轻松和高效:

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”之间的所有记录。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM