Sql server 2005 从表中选择最新记录
我有餐车:Sql server 2005 从表中选择最新记录,sql-server-2005,Sql Server 2005,我有餐车: Id int, Model nvarchar(max), DateOfProduction (datetime). 以及以下数据: 1 BMW X5 1.1.2010 2 BMW X5 1.1.2009 3 BMW X3 1.1.2008 4 BMW X3 1.1.2007 5 BMW X7 1.1.2005 我想为每种车型购买最新的汽车: 1 BMW X5 1.1.2010 3 BMW X3 1.1.2008 5 BMW X7 1.1.2005 我无法应付这种情况:/ 你能帮
Id int,
Model nvarchar(max),
DateOfProduction (datetime).
以及以下数据:
1 BMW X5 1.1.2010
2 BMW X5 1.1.2009
3 BMW X3 1.1.2008
4 BMW X3 1.1.2007
5 BMW X7 1.1.2005
我想为每种车型购买最新的汽车:
1 BMW X5 1.1.2010
3 BMW X3 1.1.2008
5 BMW X7 1.1.2005
我无法应付这种情况:/
你能帮我吗
SELECT MIN(Id), Model, MAX(DateOfProduction) FROM Table
GROUP by Model
这将适用于给定的数据
但是,假设您需要给定的表结构的最老的ID和最新的模型
,在SQL返回所需的内容之后,但您可能会考虑将表结构更改为类似于的内容。cars (carid, model)
production (carid, DateOfProduction)
SQL语句
SELECT c.*
FROM dbo.Cars c
INNER JOIN (
SELECT Model
DateOfProduction = MAX(DateOfProduction)
FROM dbo.cars
GROUP BY
Model
) dm ON dm.DateOfProduction = c.DateOfProduction
AND dm.Model = c.Model
从逻辑上讲,新车型的ID怎么可能更小?有趣:)这是唯一的例子:)