sql – 从表中选择行的最大日期的信息

前端之家收集整理的这篇文章主要介绍了sql – 从表中选择行的最大日期的信息前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的桌子看起来像这样:
group    date      cash  checks
  1    1/1/2013     0      0
  2    1/1/2013     0      800
  1    1/3/2013     0      700
  3    1/1/2013     0      600
  1    1/2/2013     0      400
  3    1/5/2013     0      200

– 不需要现金只是表明该表有更多的信息

我想要获取每个唯一的组,其中date是max,而check大于0.因此返回结果如下所示:

group    date     checks
  2    1/1/2013    800
  1    1/3/2013    700
  3    1/5/2013    200

尝试代码

SELECT group,MAX(date),checks
    FROM table
    WHERE checks>0
    GROUP BY group
    ORDER BY group DESC

问题是,它给我所有的日期和检查,而不是最大日期行。

使用ms sql server 2005

解决方法

SELECT group,MAX(date) as max_date
FROM table
WHERE checks>0
GROUP BY group

这样做可以获得最大的日期。将它加入到数据中以获取其他列:

Select group,max_date,check
from table t
inner join 
(SELECT group,MAX(date) as max_date
FROM table
WHERE checks>0
GROUP BY group)a
on a.group = t.group and a.max_date = date

内连接功能作为过滤器,仅获取最大记录。

FYI,您的列名可怕,请勿对列(组,日期,表)使用保留字。

原文链接:https://www.f2er.com/mssql/84631.html

猜你在找的MsSQL相关文章