0

我试图只返回下表的一条记录但不工作。它返回多个记录。请告知,谢谢

我怀疑 groupby 的问题

CreateDate              Firstname EventID 
2013-05-13 18:11:35.187 Jack    0CD7B08A-0EAF-4515-9DE1-00FC6DB29A61
2013-05-13 18:11:35.310 Paul    16A584D5-E9B7-4617-8DC9-089C628E0ED5
2013-05-13 20:14:33.863 Craig   AAA21035-1377-443D-9BEE-0C0761534803

这是上面结果的sql查询:

 SELECT MAX (CreateDate) AS Create_Date, Firstname ,EventID
    FROM SessionsEvents
    WHERE TRN='0391588'

GROUP BY Firstname , TRN, EventID
4

3 回答 3

1

它的 Group data by FirstName 之后是 TRN,之后是 EventID,TRN 在您的查询中存在并且在所有结果集和 FirstName 中应该相同,EventID 列具有不同的分组数据,并且行在结果集中是分开的,那么如果您需要最大创建您应该TOP为 SQL Server 使用关键字的日期:

SELECT TOP 1 MAX (CreateDate) AS Create_Date, Firstname ,EventID
FROM SessionsEvents
WHERE TRN='0391588'
GROUP BY Firstname , TRN, EventID
于 2013-05-15T00:07:53.340 回答
1

你不想要 GROUP BY。您希望使用ORDER BY的TOP 1仅获取 CreateDate 的最新记录。

SELECT TOP 1 CreateDate, Firstname ,EventID
FROM SessionsEvents
WHERE TRN='0391588'
ORDER BY CreateDate DESC
于 2013-05-15T00:24:43.523 回答
0

如果你有不同的FirstName,或者EventID相同的TRN,你会得到几个组。

于 2013-05-15T00:10:35.820 回答