如何通过SQL语句获取分组中的某几条记录
2010-01-20 09:40
381 查看
如下图表为t_FR
用sql实现按照FRID,SID及PID分组中LastChangeDate为最新的一条记录。
Select * from t_FR t wher t.ID in (select top 1 ID from t_FR where FRID=t.FRID and SID=t.SID and PID=t.PID order by LastChangedDate desc)
结果为:
ID | FRID | SID | PID | LastChangedDate | StartDate | EndDate |
1 | 1 | 2 | 2 | 2010-10-01 | 2009-10-01 | 2008-10-01 |
2 | 1 | 1 | 1 | 2008-10-01 | 2009-10-01 | 2008-10-01 |
3 | 1 | 2 | 2 | 2008-12-01 | 2009-10-01 | 2008-10-01 |
4 | 2 | 4 | 3 | 2009-10-01 | 2009-10-01 | 2008-10-01 |
5 | 2 | 4 | 3 | 2009-10-01 | 2009-10-01 | 2008-10-01 |
6 | 3 | 6 | 4 | 2010-10-01 | 2009-10-01 | 2008-10-01 |
7 | 3 | 6 | 4 | 2009-11-01 | 2009-10-01 | 2008-10-01 |
8 | 4 | 6 | 4 | 2010-10-05 | 2009-10-01 | 2008-10-01 |
Select * from t_FR t wher t.ID in (select top 1 ID from t_FR where FRID=t.FRID and SID=t.SID and PID=t.PID order by LastChangedDate desc)
结果为:
ID | FRID | SID | PID | LastChangedDate | StartDate | EndDate |
1 | 1 | 2 | 2 | 2010-10-01 | 2009-10-01 | 2008-10-01 |
5 | 2 | 4 | 3 | 2009-10-01 | 2009-10-01 | 2008-10-01 |
7 | 3 | 6 | 4 | 2009-11-01 | 2009-10-01 | 2008-10-01 |
8 | 4 | 6 | 4 | 2010-10-05 | 2009-10-01 | 2008-10-01 |
相关文章推荐
- 答:SQLServer DBA 三十问之六:Job信息我们可以通过哪些表获取;系统正在运行的语句可以通过哪些视图获取;如何获取某个T-SQL语句的IO、Time等信息;
- sql 语句中如何取分组后最大 最小的记录
- 如何通过注入SQL语句获取网站管理权限及安全措施(转)
- sql语句获取前几条记录
- GIS应用开发中常用的SQL语句(分组排序取前几条记录)
- SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
- SqlServer如何通过SQL语句获取处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统相关信息
- sql分组后查找每组的前几条记录语句
- SQL语句分组获取记录的第一条数据的方法
- SQL语句分组获取记录的第一条数据的方法
- sqlite获取几条记录的SQL语句
- 如何用SQL查询语句获取Oracle表 树形结构的记录(PL/SQL )
- SQL语句分组获取记录的第一条数据的方法
- Sql语句获取前几条记录(TOP ROWNUM)
- SQL语句分组获取记录的第一条数据
- 如何通过sql语句查看数据库的大小
- sql如何通过语句批量增加数据;删除表中重复数据
- MySQL数据库中,如何记录SQL执行语句
- 学习在Sql Server中如何通过SQL语句创建Job
- MS SQLSERVER中如何快速获取表的记录总数