Столбец недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY - PullRequest
5 голосов
/ 11 июля 2009

Очевидно, что при использовании предложения GROUP BY столбцы, которые не являются агрегатной функцией, должны быть частью предложения group by. Проблема в том, что я не могу содержать столбцы HTTPADDRESS & DATEENTERED в предложении GROUP BY. Кроме того, я не знаю функцию, которая даст мне последние записи всех.

edit: я использую sql-сервер. Я бы использовал функцию LAST, если бы я использовал доступ.

SQL = "SELECT VISITORIP, HTTPADDRESS, DATEENTERED"
SQL = SQL & " FROM STATS"
SQL = SQL & " WHERE DATEENTERED BETWEEN '" & OnlineTime & "' AND '" & NOW() & "'"
SQL = SQL & " GROUP BY VISITORIP"
SQL = SQL & " ORDER BY DATEENTERED DESC"
Set objOnVisitors = objConn.Execute(SQL)    

1 Ответ

13 голосов
/ 11 июля 2009

Вы должны самостоятельно вернуться назад:

WITH LASTVISIT AS (
    SELECT VISITORIP, MAX(DATEENTERED) AS DATEENTERED
    FROM STATS
    WHERE DATEENTERED BETWEEN @STARTTIME AND @ENDTIME
    GROUP BY VISITORIP
)
SELECT STATS.VISITORIP, STATS.HTTPADDRESS, STATS.DATEENTERED
FROM STATS
INNER JOIN LASTVISIT
    ON LASTVISIT.VISITORIP = STATS.VISITORIP
    AND LASTVISIT.DATEENTERED = STATS.DATEENTERED
ORDER BY STATS.DATEENTERED DESC

Обратите внимание, это предполагает, что данный VISITORIP будет иметь уникальный максимум DATEENTERED в диапазоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...