如何写个SELECT语句取出所有ID字段对应的每个ID最近一天日期的记录集

Crob 2005-08-12 10:59:35
现有如下数据

TDATE ID AMOUNT
20050809 10002 11100002
20050810 10001 11100002
20050810 10002 1000000
20050810 10003 3000000
20050812 10001 1000000

如何写个SELECT语句取出所有ID字段对应的每个ID最近一天日期的记录集
比如说ID=10001现在有两条对应记录,SELECT语句要求只SELECT出20050812那一条
ID=10002也有两条,但SELECT语句要求只SELECT出20050810那一条

以上数据SELECT出来应该是
TDATE ID AMOUNT
20050810 10002 1000000
20050810 10003 3000000
20050812 10001 1000000
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
子陌红尘 2005-08-12
  • 打赏
  • 举报
回复
select
a.*
from
表 a
where
a.TDATE = (select top 1 ID from 表 where ID=a.ID order by TDATE desc)
子陌红尘 2005-08-12
  • 打赏
  • 举报
回复
select
a.*
from
表 a
where
not exists(select 1 from 表 where ID=a.ID and TDATE>a.TDATE)
子陌红尘 2005-08-12
  • 打赏
  • 举报
回复
select
a.*
from
表 a
where
a.ID = (select top 1 ID from 表 where TDATE=a.TDATE)
vivianfdlpw 2005-08-12
  • 打赏
  • 举报
回复
select [TDate]=max(TDate),
ID,
[AMOUNT]=sum(AMOUNT)
from 表
group by ID
spring_504 2005-08-12
  • 打赏
  • 举报
回复
上面理解错误
select a.* from 表 a ,(select max(TDATE) as TDATE,ID from 表 group by ID) b
where a.TDATE=b.TDATE and a.ID=b.ID
spring_504 2005-08-12
  • 打赏
  • 举报
回复
select * from 表 a
where TDATE in (select max(TDATE) from 表 group by ID)

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧