为了账号安全,请及时绑定邮箱和手机立即绑定

SQL 2005 查询的问题!

SQL 2005 查询的问题!

梵蒂冈之花 2018-12-07 02:42:04
取每一个用户 最后一天的数据。表中 :用户ID(UserId),更新日期(UpdateDate),更新动作(Action) 表中数据:用户的最后更新日期  是不一定相同。这三列数据都需要查出来。 一直 没有想通怎么写。求高手指点!
查看完整描述

8 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

select * from 表 left join (select UserId,max(UpdateDate) as UpdateDate from 表 group by userid) a on 表.userid=a.userid and 表.updatedate=a.updatedate

查看完整回答
反对 回复 2019-01-07
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

我有一个有方法

感觉有点笨你可以看一下

我用我自己表试了一下没有问题

declare @id int
--建一个临时表
if object_id('Tempdb..#temp') is not null
begin
    drop table #temp
end 
else 
begin
    create table #temp
    (
        [用户ID] int ,
        [更新日期] varchar(100),
        [更新动作] varchar(200)
    )
end

declare cursor1 cursor for --用游标
select distinct UserId from [你的表]
open cursor1
fetch next from cursor1 into @id

while @@fetch_status=0
begin
    insert into #temp
    select top 1 UserId,UpdateDate,Action from [你的表] where UserId = @id
        order by UpdateDate desc
    fetch next from cursor1 into @id
end
close cursor1
deallocate cursor1

select * from  #temp
drop table #temp
查看完整回答
反对 回复 2019-01-07
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

方法可以实现。现在就是不知道 有没有更好点的方法。

查看完整回答
反对 回复 2019-01-07
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

@紫炁星: 

如果有更好的说一声,我也学习一下

查看完整回答
反对 回复 2019-01-07
?
SMILET

TA贡献1796条经验 获得超4个赞

有一个更笨的方法,先把更新日期按照降序排列,使用select语句选出top 1就行了!

查看完整回答
反对 回复 2019-01-07
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

查询的是用户最后一天 (一组数据)的数据 并不是第一条数据。

查看完整回答
反对 回复 2019-01-07
?
慕沐林林

TA贡献2016条经验 获得超9个赞

@紫炁星: 哈哈~谢谢提醒哦!我看题太粗心了~

查看完整回答
反对 回复 2019-01-07
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

max不就可以了。

查看完整回答
反对 回复 2019-01-07
  • 8 回答
  • 0 关注
  • 504 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信