我试图只返回下表中的一条记录但不起作用。它返回多个记录。请指教,谢谢
我怀疑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
答案 0 :(得分:1)
使用TRN后的FirstName的Group数据,之后使用EventID表示查询中存在TRN,并且在所有结果集和FirstName中相同,EventID列没有相同的数据用于分组,行在resultset中是分开的,如果你需要最大创建日期,您应该使用SQL Server的TOP
关键字:
SELECT TOP 1 MAX (CreateDate) AS Create_Date, Firstname ,EventID
FROM SessionsEvents
WHERE TRN='0391588'
GROUP BY Firstname , TRN, EventID
答案 1 :(得分:1)
你不想要GROUP BY。您想要 TOP 1 与 ORDER BY 来获取CreateDate的最新记录。
SELECT TOP 1 CreateDate, Firstname ,EventID
FROM SessionsEvents
WHERE TRN='0391588'
ORDER BY CreateDate DESC
答案 2 :(得分:0)
如果您对同一FirstName
有不同的EventID
或TRN
,则会有多个小组。