Мне сказали создать запрос, который покажет 10 самых популярных приложений в нашей компании, и в 11-й строке следует сгруппировать в него все остальные строки и вызвать запись «Другое» и суммировать все сеансы вместе.
Как мне изменить этот код, чтобы показывать только ежемесячные записи?
Фрагмент кода
SELECT TOP 10 dbo_LU_APPNAME.APPNAME, Count(*) AS SessionNos
FROM dbo_LU_APPNAME INNER JOIN dbo_SDB_SESSION ON dbo_LU_APPNAME.PK_APPNAMEID =
dbo_SDB_SESSION.FK_APPNAMEID
GROUP BY dbo_LU_APPNAME.APPNAME
ORDER BY Count(*) DESC;
UNION ALL SELECT "Other" AS APPNAME, Count(*) AS SessionNos
FROM (dbo_LU_APPNAME
INNER JOIN dbo_SDB_SESSION
ON dbo_LU_APPNAME.PK_APPNAMEID = dbo_SDB_SESSION.FK_APPNAMEID)
LEFT JOIN (SELECT TOP 10 dbo_LU_APPNAME.APPNAME, Count(*) AS SessionNos
FROM dbo_LU_APPNAME
INNER JOIN dbo_SDB_SESSION
ON dbo_LU_APPNAME.PK_APPNAMEID = dbo_SDB_SESSION.FK_APPNAMEID
GROUP BY dbo_LU_APPNAME.APPNAME
ORDER BY Count(*) DESC) AS s ON dbo_LU_APPNAME.APPNAME = s.APPNAME
WHERE s.APPNAME Is Null
GROUP BY "Other";
Таблица dbo_SDB_SESSION
имеет много полей, из которых нам нужно будет использовать:
- SESSIONSTART
- SESSIONEND
Код может быть примерно таким:
WHERE (((dbo_SDB_SESSION.SESSIONSTART) Between Now() And DateAdd("d",-30,Now())))
Вопрос
Как мне изменить вышеуказанный код, чтобы показывать только данные за предыдущий месяц?
Это представление SQL в Access 2007.