【发布时间】:2012-10-08 04:22:48
【问题描述】:
可能重复:
How to get the record of a table who contains the maximum value?
我有一个如下聚合查询:
SELECT TrainingID, Max(CompletedDate) as CompletedDate, Max(Notes) as Notes --This will only return the longest notes entry
FROM HR_EmployeeTrainings ET
WHERE (ET.AvantiRecID IS NULL OR ET.AvantiRecID = @avantiRecID)
GROUP BY AvantiRecID, TrainingID
哪个有效,并且大部分时间都返回正确的数据,但我发现了一个问题。返回的 Notes 字段不一定与 max(completedDate) 来自的记录匹配。相反,它将是字符串最长的那个?还是 ASCII 值最高的那个?如果两条记录之间存在关联,SQL Server 会做什么?我什至不确定。我想要得到的是 max(completedDate) 记录中的 notes 字段。我该怎么做呢?
【问题讨论】:
-
CompletedDate 不是 DateTime 吗?
-
这是一个日期时间。该字段没有问题,但 Notes 有问题。
-
max(completedDate)的最大注释或每个注释? -
我使用 Max(notes) 来尝试获得我想要的东西,但我实际上并不想要最大的笔记。我真的想要与 max(dateCompleted) 在同一记录中的任何注释。
标签: sql sql-server sql-server-2000