看一看这个
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