gpt4 book ai didi

sql - (使用 join)我不包含在聚合函数或 GROUP BY 错误中

转载 作者:行者123 更新时间:2023-12-02 10:51:02 24 4
gpt4 key购买 nike

我收到以下错误。

[Microsoft][ODBC SQL Server 驱动程序][SQL Server]列“STATS.VisitorIP”在选择列表中无效,因为它未包含在聚合函数或 GROUP BY 子句中。

我在两个选择列表中都使用了 VISITORIP 列。我在其中之一中使用了 GROUP BY 子句,因此我向其中添加了 VISITORIP。但我在其他选择中没有 GROUP BY 子句,所以没有添加它。为什么我会收到此错误?

SELECT S.VISITORIP, S.HTTPADDRESS, S.DATEENTERED
FROM STATS S
JOIN (SELECT S1.VISITORIP, MAX(S1.DATEENTERED) FROM STATS S1 WHERE DATEENTERED BETWEEN '" & OnlineTime & "' AND '" & NOW() & "') S1
ON S.VISITORIP = S1.VISITORIP AND S.DATEENTERED = S1.DATEENTERED
WHERE S.DATEENTERED BETWEEN '" &TIME& "' AND '" & NOW() & "'
GROUP BY S.VISITORIP, S.HTTPADDRESS, S.DATEENTERED
ORDER BY S.DATEENTERED DESC

最佳答案

您需要在嵌套子查询中使用 GROUP BY,因为您正在尝试获取每个 VISITORIP 的 MAX DATEENTERED。 VISITORIP 存在于该子查询的 SELECT 中,因此您还需要其中的 GROUP BY 以便它返回每个访问者的最新日期。

SELECT S.VISITORIP, S.HTTPADDRESS, S.DATEENTERED
FROM STATS S
JOIN (SELECT S1.VISITORIP, MAX(S1.DATEENTERED) FROM STATS S1 WHERE DATEENTERED BETWEEN '" & OnlineTime & "' AND '" & NOW() & "' GROUP BY S1.VISITORIP) S1
ON S.VISITORIP = S1.VISITORIP AND S.DATEENTERED = S1.DATEENTERED
WHERE S.DATEENTERED BETWEEN '" &TIME& "' AND '" & NOW() & "'
GROUP BY S.VISITORIP, S.HTTPADDRESS, S.DATEENTERED
ORDER BY S.DATEENTERED DESC

关于sql - (使用 join)我不包含在聚合函数或 GROUP BY 错误中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1126591/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com