ste*_*bot 23 sql t-sql sql-server
我有一个非常简单的月度通讯数据集:
id  | Name          | PublishDate   | IsActive
1   |  Newsletter 1 | 10/15/2012    |     1
2   |  Newsletter 2 | 11/06/2012    |     1  
3   |  Newsletter 3 | 12/15/2012    |     0
4   |  Newsletter 4 | 1/19/2012     |     0
等等.
PublishDate是独一无二的.
结果(基于以上):
id  | Name          | PublishDate   | IsActive
2   |  Newsletter 2 | 11/06/2012    |     1  
我想要的很简单.我只想要一份IsActive和PublishDate = MAX(PublishDate)的新闻通讯.
Ada*_*son 56
select top 1 * from newsletters where IsActive = 1 order by PublishDate desc
Tar*_*ryn 15
你可以使用row_number():
select id, name, publishdate, isactive
from
(
  select id, name, publishdate, isactive,
    row_number() over(order by publishdate desc) rn
  from table1
  where isactive = 1
) src
where rn = 1
您甚至可以使用选择max()日期的子查询:
select t1.*
from table1 t1
inner join
(
  select max(publishdate) pubdate
  from table1
  where isactive = 1
) t2
  on t1.publishdate = t2.pubdate
| 归档时间: | 
 | 
| 查看次数: | 75817 次 | 
| 最近记录: |