2013-05-14 26 views
0

我想爲下表只返回一條記錄,但不工作。它返回多個record.Please指教,謝謝SQL Group按日期只選擇1條記錄

我懷疑與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

爲什麼你期望只有一個記錄? – akonsu

+0

一些列丟失,ClinicianName,ConsumerHRN和TRN在哪裏? –

+0

我道歉的傢伙,我正在複製錯誤的SQL。它是sql服務器查詢。謝謝 – Spidey

回答

1

它的名字集團數據之後用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 
0

,如果你有不同的FirstName,或EventID爲同一TRN你會得到幾組。

1

你不需要GROUP BY。你想要TOP 1ORDER BY,而不是隻得到CreateDate的最新記錄。

SELECT TOP 1 CreateDate, Firstname ,EventID 
FROM SessionsEvents 
WHERE TRN='0391588' 
ORDER BY CreateDate DESC