SQLServer 根据时间查询A表的人员和记录点数据 只取最新的一条 有人知道么 5

给大家模拟的表和数据createtablekaoqin(useridvarchar(4)notnull,holeidvarchar(2)notnull,recodetim... 给大家模拟的表和数据

create table kaoqin ( userid varchar(4) not null, holeid varchar(2) not null, recodetime nvarchar(20) not null )
insert into kaoqin values('0001','05','2013-08-22 13:52:21')
insert into kaoqin values('0002','01','2013-08-22 13:52:18')
insert into kaoqin values('0002','06','2013-08-22 13:52:21')
insert into kaoqin values('0003','08','2013-08-22 13:52:35')
最后的结果我是要一次性 查询出 '0001','05','2013-08-22 13:52:21' | '0002','06','2013-08-22 13:52:21' |'0003','08','2013-08-22 13:52:35'
展开
 我来答
a5987655
2013-08-24 · TA获得超过277个赞
知道小有建树答主
回答量:124
采纳率:66%
帮助的人:138万
展开全部
这个非常简单
首先你是要查询各个不同的,就需要用到group by .
然后是取最后的记录时间点,你就需要用到 max()函数
select userid as 卡号,holeid as 记录点,max(recodetime) as 记录时间 from kaoqin
group by userid,holeid

就这样就行了,其实SQL把需求分开来看很好写的。望楼主采纳!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
街角唱沙哑的歌
推荐于2018-05-10 · 超过19用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:51.2万
展开全部
select * from table A where exists (select * from (select 卡号,记录点,max(记录时间) 记录时间 from table) B where A.卡号 = B.卡号 and A.记录点 = B.记录点 and A.记录时间 = B.记录时间  )
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
下扬州啊
2013-08-22 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2135万
展开全部
select 卡号,记录点 ,max(记录时间) as 记录时间
from table group by 卡号,记录点,记录时间
追问

还是不对 兄弟

追答
select 卡号,记录点 ,max(记录时间) as 记录时间
from table group by 卡号,记录点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式