访问SQL查询帮助

问题描述:

我有一个查询中,我需要使用下列三个实体来执行:访问SQL查询帮助

  1. LU_AppName
  2. SDB_AppHistory
  3. SDB_Session

LU_AppName有字段APPNAM,SDB_AppHistory具有日期/时间字段STARTTIME,并且SDB_Session具有字段DURATION字段。

我需要运行SQL查询以向我显示Citrix应用程序,这些应用程序在过去6个月内未使用过。

目前我的代码如下。

SELECT dbo_LU_APPNAME.APPNAME, dbo_SDB_APPHISTORY.STARTTIME 
FROM dbo_LU_APPNAME INNER JOIN dbo_SDB_APPHISTORY ON dbo_LU_APPNAME.PK_APPNAMEID = dbo_SDB_APPHISTORY.FK_APPNAMEID 
WHERE (((dbo_LU_APPNAME.APPNAME) Like "* Citrix") AND ((dbo_SDB_APPHISTORY.STARTTIME) Between DateAdd("d",-180, Getdate()))) 

我有点困惑,因为我不是很好的SQL

谁能请咨询,如果你需要更多信息,请让我知道。

谢谢,任何帮助将是伟大的。

那么你就错过的BETWEEN子句1/2 ...

AND((dbo_SDB_APPHISTORY.STARTTIME)GETDATE()和使用DateAdd( “d” 之间, - 180,GETDATE())

+0

GETDATE()似乎无法在ACCESS 2007 SQL视图中识别NOW()似乎很好。 任何替代方案 – MalsiaPro 2010-02-09 15:35:13

+0

Access/Jet/ACE函数是Date()。 – 2010-02-09 22:25:17

+0

我认为OP有正确的功能,我只是指出他错过了BETWEEN的其余条件...... 所以它会是: AND((dbo_SDB_APPHISTORY.STARTTIME)Date和Date之间()-180) – Leslie 2010-02-10 14:58:52

您可以使用日期(),而不是GETDATE:

DateAdd("d",-180, Date()) 

日期()是相当满意:

Date()-180 

使用DateAdd将接受“M”,如果你想考虑个月:

DateAdd("m",-6, Date()) 

当心日期格式和语言环境。