Rõ ràng, khi mệnh đề GROUP BY được sử dụng, cột không phải là hàm tổng hợp phải là một phần của nhóm theo mệnh đề. Vấn đề ở đây là, tôi không thể chứa các cột HTTPADDRESS & DATEENTERED trong mệnh đề GROUP BY. Ngoài ra, tôi không biết một chức năng mà sẽ cho tôi những mục mới nhất của tất cả.Cột không hợp lệ trong danh sách lựa chọn vì nó không được chứa trong hàm tổng hợp hoặc mệnh đề GROUP BY
chỉnh sửa: Tôi sử dụng máy chủ sql. Tôi sẽ sử dụng hàm LAST nếu tôi đang sử dụng quyền truy cập.
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)
Nếu tôi sử dụng MAX trên HTTPADDRESS và DATEENTERED trực tiếp thì sao? –
Có khả năng không chính xác hơn nếu IP có hai lượt truy cập vào cùng một ngày giờ chính xác là ngày cuối cùng của chúng. MAX (HTTPADDRESS) và MAX (DATEENTERED) có khả năng độc lập tối đa trong nhóm. Ví dụ: nếu người dùng truy cập http://www.abc.com/page2.htm và sau đó http://www.abc.com/page1.htm, địa chỉ tối đa sẽ là trang đầu tiên, nhưng thời gian tối đa sẽ là chuyến thăm thứ hai. –
+1 không phải vì điều này giải quyết trực tiếp vấn đề của tôi, nhưng ý tưởng tự tham gia đã tạo ra một ý tưởng khác cho tôi để giải quyết vấn đề của tôi. –