我有兩個表,我需要運行一個查詢來顯示用戶在過去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;
(請理解:
在此先感謝
那麼你的問題是什麼? – APC 2010-02-05 09:50:28
抱歉,基本上上面的代碼顯示了過去3個月內的所有記錄列表,但是它從月份的第一天開始到當前日期結束,但我需要它在今天的日期前3個月開始。 – 2010-02-05 09:53:13
我對ms訪問知之甚少,但是通過簡化的方式,您可以將其視爲運行三個單獨的問題(每個'或'還有一個問題),併合並結果。它應該相當快地做一個'DateAdd(「m」,-3,Now())'(或者你可以在ms訪問中得到'今天減去三個月')並且只是做比較來檢查'sessionstart'是大於此。 – 2010-02-05 09:55:37