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
结果还是全部出来 展开
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
结果还是全部出来 展开
展开全部
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
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Select
*
From
test a
Where
date>=all(Select date From test b where a.sub_db=b.sub_dh)
*
From
test a
Where
date>=all(Select date From test b where a.sub_db=b.sub_dh)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from test A where date=(select max(date) from test B where A.sub_dh=B.sub_dh)
追问
谢谢 搞定
追答
请记得采纳哦^_^!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询