gpt4 book ai didi

sql-server-2008 - 简单的SQL问题

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

我不敢相信我竟然被如此简单的查询所困扰。

我需要取回给定项目的具有最大 DateLogged 值的日志的用户。我已经重写了一百万种方式,但这是最清楚地表达我想要的东西的方式 -

SELECT L.User
FROM Log AS L
WHERE L.Id = 24
GROUP BY L.ProjectId
HAVING MAX(L.DateLogged) = L.DateLogged

但这会引发“列‘Log.DateLogged’在 HAVING 子句中无效,因为它不包含在聚合函数或 GROUP BY 子句中。”但我不希望它按 DateLogged 分组,也不希望它位于聚合函数中。

最佳答案

我认为如果您使用L.Id = 24,您将只能返回一行。 IMO,您应该按 L.UserL.UserId 进行过滤,而不是 L.Id

对于所有项目的列表,您可以这样做。

SELECT L.User, L.ProjectId, MAX (L.DateLogged) as DateLogged
FROM Log AS L
WHERE L.User = @YourUserNameGoesHere
GROUP BY L.User, L.ProjectId

对于您知道项目详细信息的单个项目,只需使用 ORDER BY

SELECT TOP 1 L.User, L.DateLogged
FROM Log AS L
WHERE L.User = @YourUserNameGoesHere
AND L.ProjectId = @YourProjectIdGoesHere
ORDER BY L.DateLogged DESC

关于sql-server-2008 - 简单的SQL问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3299130/

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