Oczywiście, gdy użyto klauzuli GROUP BY, kolumny, które nie są funkcją agregującą, powinny być częścią klauzuli group by. Problem polega na tym, że nie mogę zawierać kolumn HTTPADDRESS & DATEENTERED w klauzuli GROUP BY. Ponadto, nie znam funkcji, która da mi najnowsze wpisy wszystkich.Kolumna jest nieprawidłowa na liście wyboru, ponieważ nie jest zawarta ani w funkcji agregującej ani w klauzuli GROUP BY
edytuj: Używam serwera sql. Chciałbym użyć funkcji LAST, jeśli korzystałem z dostępu.
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)
Co zrobić, jeśli używam MAX na HTTPADDRESS i DATEENTERED bezpośrednio? –
Potencjalnie bardziej niepoprawny niż w przypadku, gdy adres IP ma dwie wizyty na tej samej dokładnej wartości daty i godziny, która jest ostatnia. MAX (HTTPADDRESS) i MAX (DATEENTERED) są potencjalnie niezależnie maksymalne w grupie. Na przykład, jeśli użytkownik odwiedza http://www.abc.com/page2.htm, a następnie http://www.abc.com/page1.htm, maksymalny adres będzie pierwszą stroną, ale maksymalny czas będzie być drugą wizytą. –
+1 nie dlatego, że rozwiązało to bezpośrednio mój problem, ale pomysł na łączenie się stał się dla mnie kolejnym pomysłem na rozwiązanie mojego problemu. –