2009-04-26 110 views
1

我有一个sql server 2008数据库中包含一堆记录以及日期列的表。当发生表格的新条目时,会自动插入日期。所以,它包含已经创建的记录的日期。TSQL查询将返回表中最早的日期和最新的日期

我想运行一个查询,该查询将返回此表中的最早日期和最新日期。

我试过类似的东西;

SELECT TOP(1) DateAdded AS firstdate 
FROM  News 
ORDER BY DateAdded DESC; 

SELECT TOP(1) DateAdded AS lastdate 
FROM  News 
ORDER BY DateAdded ASC; 

但它只返回'firstdate'。

任何人都可以指导我如何做到这一点?

回答

3
SELECT 
     MIN(DateAdded) As FirstDate, 
     MAX(DateAdded) As LastDate 
FROM 
     News; 
1

答案是使用聚合。

SELECT 
    MIN(DateAdded) AS firstdate, 
    MAX(DateAdded) AS lastdate 
FROM 
    News; 

查询返回2分的结果:每个作品单独虽然

+0

谢谢你的回答,我标志着何塞的答案,因为他第一次和我写的不想得罪任何人... – 2009-04-26 18:06:08

1

你可以使用这样的事情:

select DateAdded  from (SELECT DateAdded, 
      row_number() over (order by DateAdded desc) as rn, 
      count(*) over() as added_value 
    FROM News 
) t 
where rn = 1 
    or rn = added_value 
ORDER BY DateAdded DESC 
相关问题