2017-10-14 63 views
-1

我正在嘗試爲每個detailsID的最近日期的每個detailsID檢索最近的「主題1值」。SQL語句選擇最近的日期和每個組的編號

我想沿着線的東西:

SELECT detailsID,`Topic 1 Scores`, MAX(Date) 
FROM Information.scores 
WHERE `Topic 1 Scores` IS NOT NULL 
GROUP BY `detailsID`,`Topic 1 Scores` 

正在打印;

detailsID,主題1比分,MAX(日期)

2 0 26/09/2017

2 45 26/09/2017

2 100 26/09/2017

3 30 25/09/2017

3 80 14/10/2017

,而不是實際選擇素g每個detailsID的最近日期?

+2

'ORDER BY'後面不能有'WHERE'子句。 – Barmar

+0

你如何選擇主題70,這兩個行的detailid 1有相同的日期 –

+0

我看不出這個問題和我選擇的重複之間的任何區別。 – Barmar

回答

0

像這樣的解決方案可以在鏈接問題中的this answer中找到。

SELECT t1.detailsID, t1.`Topic 1 Scores` 
FROM Information.scores AS t1 
JOIN (SELECT detailsID, MAX(date) AS maxDate 
     FROM Information.scores 
     GROUP BY detailsID) AS t2 
ON t1.detailsID = t2.detailsID AND t1.date = t2.maxDate