2010-02-09 80 views
0

我有一個查詢中,我需要使用下列三個實體來執行:訪問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

誰能請諮詢,如果你需要更多信息,請讓我知道。

謝謝,任何幫助將是偉大的。

回答

0

那麼你就錯過的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

0

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

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

日期()是相當滿意:

Date()-180 

使用DateAdd將接受「M」,如果你想考慮個月:

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

當心日期格式和語言環境。