看一看這個
DECLARE @Table TABLE(
Location INT,
Date DATETIME,
Temp INT
)
INSERT INTO @Table (Location,Date,Temp) SELECT 1, '12 Dec 2009', 19
INSERT INTO @Table (Location,Date,Temp) SELECT 1, '14 Dec 2009', 21
INSERT INTO @Table (Location,Date,Temp) SELECT 1, '13 Dec 2009', 17
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '12 Dec 2009', 18
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '14 Dec 2009', 16
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '18 Dec 2009', 12
INSERT INTO @Table (Location,Date,Temp) SELECT 2, '15 Dec 2009', 14
SELECT t.*
FROM @Table t INNER JOIN
(
SELECT Location,
MAX(Date) MaxDate
FROM @Table
GROUP BY Location
) MaxDates ON t.Location = MaxDates.Location
AND t.Date = MaxDates.MaxDate
ORDER BY 1
您可能希望注意的唯一情況是,給定位置的maxdat可能會多次激活,連接將爲位置,日期組合返回多個結果。
您可能想要決定如何選擇這些結果中的哪一個或您想返回的所有結果。
您可能想要標記此問題「sql」,因爲您不需要T-SQL特定的功能。除此之外,您應該將列名「date」更改爲其他內容,因爲它是SQL中的保留字。它的工作原理,但可能會讓你很難。 – 2009-10-07 10:37:28
但後來我也得到答案與ie特定的MySql sql – Michel 2009-10-07 11:44:39