sql中,取时间最近的一条记录

sub_dhdateGnameA10012015/3/24A清单A10012015/4/25B清单A10022015/5/26A清单A10022015/6/27C清单A1... sub_dh date Gname

A1001 2015/3/24 A清单

A1001 2015/4/25 B清单

A1002 2015/5/26 A清单

A1002 2015/6/27 C清单

A1003 2015/5/28 A清单
如上表,表明叫test。
同一个sub_dh会有多条记录,抓取date最近的一条记录,就好了
最终结果是
sub_dh date Gname

A1001 2015/4/25 B清单

A1002 2015/6/27 C清单

A1003 2015/5/28 A清单

我自己写的语句是
SELECT Sub_dh,MAX(Date),GName
FROM dbo.test
GROUP BY SUB_DH,DATE,GName
结果还是全部出来
展开
 我来答
buddhayes
2015-11-17 · 超过33用户采纳过TA的回答
知道答主
回答量:56
采纳率:100%
帮助的人:50.5万
展开全部
select test.sub_dh, test.date, test.Gname
from test ,(SELECT Sub_dh as dh, MAX(Date) as date FROM  dbo.test GROUP BY SUB_DH)  a
where test.Sub_dh = a.dh
and test.date = a.date
看你写的SQL,GROUP BY的用法还是没有太理解
twvampire
2015-11-17 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:2995万
展开全部
select t1. *
from test t1 inner join
(
SELECT Sub_dh,MAX(Date) date
FROM dbo.test
GROUP BY SUB_DH) t2 on t1.sub_dh=t2.sub_dh and t1.date=t2.date
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sysplay
2015-11-17 · TA获得超过1155个赞
知道小有建树答主
回答量:663
采纳率:86%
帮助的人:539万
展开全部
Select
*
From
test a
Where
date>=all(Select date From test b where a.sub_db=b.sub_dh)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2dca20d
2015-11-17 · TA获得超过4036个赞
知道大有可为答主
回答量:2638
采纳率:77%
帮助的人:1031万
展开全部
select * from test A where date=(select max(date) from test B where A.sub_dh=B.sub_dh)
追问
谢谢 搞定
追答
请记得采纳哦^_^!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式