欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

查询一个表内不重复的并且是最后日期的

更新时间: 2014-01-05 02:18:12 责任编辑: Author_N1

 

查询一个表内不重复的而且是最后日期的
有一个表Recharge,是充值话费的记录表。
这里面有很多手机号码。phone  然后充值记录,有个时间字段yxiaqi,
现在要查询。有效期大于今天的
select * from Recharge where yxiaqi>getdate()
是这么查,但是发现。有存在重复的手机号码。我现在想去掉重复的,只要最后时间最长的那个。应该怎么写?
比如手机号码130000000,有2个有效期,2013-12-22和2013-12-24,那么我不要22日的只要24日的。
--参考方法--
select *
from Recharge   a
where exists (select 1 from (select phone,max(yxiaqi)yxiaqi from Recharge  where yxiaqi>getdate() group by phone) b where a.phone=b.phone and a.yxiaqi =b.yxiaqi )
--参考方法--
select *
from 
(
select *,
   max(yxiaqi) over(partition by phone) as max_yxiaqi
from Recharge   a
where  yxiaqi>getdate()
)t
where yxiaqi = max_yxiaqi
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:18:12
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8242/
本文WWW.DOC100.NET DOC100.NET版权所有。