Sql server 选择具有最新CreatedDate的行
我在SQL Server 2014中有一个包含以下列的表:Sql server 选择具有最新CreatedDate的行,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我在SQL Server 2014中有一个包含以下列的表: Type ProjectNr CreatedDate Subject Body ------------------------------------------------------------------------ 101 1000 31-01-2017 12345 Lorem ipsum dolor sit amet 104 1000 31-01
Type ProjectNr CreatedDate Subject Body
------------------------------------------------------------------------
101 1000 31-01-2017 12345 Lorem ipsum dolor sit amet
104 1000 31-01-2017 23456 Lorem ipsum dolor sit amet
109 1000 31-01-2017 34567 Lorem ipsum dolor sit amet
109 1000 31-09-2017 45678 Lorem ipsum dolor sit amet
109 1000 31-11-2017 56789 Lorem ipsum dolor sit amet
109 1001 31-10-2017 67890 Lorem ipsum dolor sit amet
我只需要所有类型109与每个项目的最新CreateDate nR
这是需要的结果:
Type ProjectNr CreatedDate Subject Body
-----------------------------------------------------------------------
109 1000 31-11-2017 56789 Lorem ipsum dolor sit amet
109 1001 31-10-2017 67890 Lorem ipsum dolor sit amet
行的排序是不必要的使用密集秩或行编号函数为每个行组按/分区按类型和项目编号以及按CreatedDate列的降序提供行号。然后选择行号为1的行
质疑
试试这个
SELECT Type, ProjectNr, CreatedDate, Subject, Body
WHERE Type = 109 and createddate = MAX(CreatedDate)
GROUP BY Type, ProjectNr, Subject, Body
如果要对其进行排序,请根据需要添加Order By列
ORDER BY Type, ProjectNr
您可以用一种更简单的方式:
Select * from [TableName]
where CreatedDate >= '(Your desired date here : YY-MM-DD)'
order by [columnName(if you want them in order)]
添加[类型]=109@Alex:是的,错过了。。非常感谢。最新答案
ORDER BY Type, ProjectNr
Select * from [TableName]
where CreatedDate >= '(Your desired date here : YY-MM-DD)'
order by [columnName(if you want them in order)]