나는 지난 3 개월 동안 사용자가 가진 조회수를 표시하기 위해 쿼리를 실행해야하는 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 개월 이내에 모든 레코드 목록 위의 코드; 그러나, 그것은 달의 1 일부터 시작하여 현재 날짜로 끝나지 만, 오늘 날짜보다 3 개월 전에 시작해야합니다.
또한 MS Access 2007 코드의 SQL View임을 알려드립니다.
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;
(양해 해 주시기 바랍니다 : "엄격하게"당신이 3 개월 규칙을 정의하는 방법에 따라 미리
귀하의 질문은 무엇입니까? – APC
죄송합니다, 기본적으로 위의 코드는 지난 3 개월 이내에 모든 레코드 목록을 표시합니다. 그러나 해당 월의 첫 번째 날부터 시작하여 현재 날짜까지 끝나지 만 오늘 날짜보다 3 개월 전에 시작해야합니다. –
나는 MS 액세스에 대해 많이 알지 못하지만 간략한 방식으로 세 개의 개별 질문 (각각 '또는'에 대해 하나씩)을 실행하고 결과를 병합하는 것으로 생각할 수 있습니다. 'DateAdd ("m", -3, Now())'를 실행하는 것이 훨씬 더 빠를 것입니다 (그러나 ms 액세스에서 '오늘은 3 개월을 뺀 것입니다.)'를 비교하여'sessionstart'가 그것보다 큽니다. –