加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 07:03:43 所属栏目:MsSql教程 来源:网络整理
导读:我的桌子看起来像这样: 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      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,您的列名可怕,请勿对列(组,日期,表)使用保留字。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读