Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 选择具有最新CreatedDate的行_Sql Server_Sql Server 2014 - Fatal编程技术网

Sql server 选择具有最新CreatedDate的行

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

我在SQL Server 2014中有一个包含以下列的表:

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)]