求记录中的最新数据的方法!

原创 2005年03月02日 12:46:00

已知数据:

Column1    Column2     Column3    Column4
A                      10                     am         1999-01-01 00:00:00.000
A                      11                     am         1999-01-02 00:00:00.000
B                     12                      bm         1999-01-03 00:00:00.000
B                     13                      bm         1999-01-04 00:00:00.000
C                    14                      cm         1999-01-05 00:00:00.000
C                     15                     cm         1999-01-06 00:00:00.000

要求得到数据:

Column1    Column2     Column3    Column4
A                      11                     am         1999-01-02 00:00:00.000
B                     13                      bm         1999-01-04 00:00:00.000
C                     15                     cm         1999-01-06 00:00:00.000

--数据装载

Create Table #T(Column1 varchar(10),Column2 int,Column3 varchar(10),Column4 datetime)
insert #T select 'A',10,'am','1999-1-1'
union all select 'A',11,'am','1999-1-2'
union all select 'B',12,'bm','1999-1-3'
union all select 'B',13,'bm','1999-1-4'
union all select 'C',14,'cm','1999-1-5'
union all select 'C',15,'cm','1999-1-6'

--测试语句 方法1:

select a.* from #T a
where (a.Column4) =
   (select top 1 (Column4) from #T where Column1 = a.Column1 order by Column4 desc)

--测试结果:

Column1    Column2     Column3    Column4                                               
---------- ----------- ---------- ------------------------------------------------------
A          11          am         1999-01-02 00:00:00.000
B          13          bm         1999-01-04 00:00:00.000
C          15          cm         1999-01-06 00:00:00.000

--测试语句 方法2:(最佳效率)

select a.* from #T a join(
 select Column1,Column4=max(Column4) from #T group by Column1
)b on a.Column1=b.Column1 and a.Column4=b.Column4
order by a.Column1

--测试结果 方法2:

Column1    Column2     Column3    Column4                                               
---------- ----------- ---------- ------------------------------------------------------
A          11          am         1999-01-02 00:00:00.000
B          13          bm         1999-01-04 00:00:00.000
C          15          cm         1999-01-06 00:00:00.000

利用数据库,生成一个.net 调用的类文件(只支持对一个表操作的类)

/* 利用数据库生成.net 使用的类,简化程序编写 为考虑效率问题,没有利用数据库循环,格式不美观。(需要利用.net 工具调整) 作者:  邹黎鹏(zlp321001@hotmail.com)  ...

SQL Server 使用数据库发送邮件(sp_send_dbmail)

项目开发中,很多地方需要发送邮件,比如下订单,取消订单等等,可以通过程序代码(c#,java等)发送,亦可以使用数据库的触发器通过sql语句发送. 使用数据库发送邮件,一般使用存储过程 xp_send...

Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法

一、前言                                      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。 ...

mysql去重后获得最新数据方法

昨天做项目时候突然遇到一个问题,就是我有一张点zan表(一下简称zan),结构如下图 id是自增值,gid是文章id,ip是点赞者的ip地址,time是点赞时间戳,blog是标志字段。 上面的就是...
  • z21102
  • z21102
  • 2016年07月12日 10:25
  • 1733

OAF学习笔记-18- Update后页面显示不是最新的数据的解决方法

不知道遇没遇到这种情况,我是遇到了.(应该哪里没有设置属性,或是别的)于是自己做了个不靠谱的方法.已解决问题 思路:在更新时,获取到查询条件值,并将条件值写入AM中,Update后跳转回查询页面...

Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法

insert元素 属性详解                               其属性如下:    parameterType ,入参的全限定类名或类型别名    keyCo...

Mybatis中,当插入数据后,返回最新主键id的几种方法,及具体用法

一、前言                                      数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。 ...

最新PHP 经常用到的数据过滤的方法

/**  *  global.func.php 公共函数库  */ /**  * 返回经addslashes处理过的字符串或数组  * @param $string 需要处理的字符串或数...

高效删除Oracle数据库中重复数据,并保留最新一条的方法

在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢?   重复数据删除技术可以提供更大的备份容量,实...
  • e_wsq
  • e_wsq
  • 2011年08月30日 16:08
  • 1193

动态获取后台最新数据的一个实现方法

当grid位于第一页时自动刷新获取数据,当grid不是第一页时不进行自动刷新可查看历史数据. var ds = new Ext.data.Store({ proxy : new Ext...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:求记录中的最新数据的方法!
举报原因:
原因补充:

(最多只允许输入30个字)