【问题标题】:TSQL query that would return me the earliest date and the latest date in a table将返回表中最早日期和最晚日期的 TSQL 查询
【发布时间】:2010-10-21 22:25:31
【问题描述】:

我在 sql server 2008 数据库中有一个表,其中包含一堆记录以及一个日期列。当表格中出现新条目时,日期会自动插入。因此,它包含已创建记录的日期。

我正在尝试运行一个查询,该查询将返回此表中的最早日期和最晚日期。

我试过类似的东西;

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'。

谁能指导我如何实现这一目标?

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008


    【解决方案1】:
    SELECT 
           MIN(DateAdded) As FirstDate,
           MAX(DateAdded) As LastDate
    FROM
           News;
    

    【讨论】:

      【解决方案2】:

      答案是使用聚合。

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

      您的查询返回 2 个结果:但每个结果都单独工作

      【讨论】:

      • 感谢您的回答,我在 Jose 的回答中标记了他先写的内容​​,我不想冒犯任何人...
      • 我可以想象我们有很多人竞相回答这个问题......幸运的何塞:-)
      【解决方案3】:

      你可以使用这样的东西:

          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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-29
        • 1970-01-01
        • 2016-06-09
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-18
        相关资源
        最近更新 更多