VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1011|回复: 5

删除一个表中同个资料最大的那个值,快来帮帮我!

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-11-30 22:00:02 | 显示全部楼层 |阅读模式
例如表aa:
aa    bb     cc
1      255    20161212
1      15     20161210
2      33     20160612
2       11     20160101
按cc用DESC排序了,
如我想删除where aa='2'or 其他中处的最近时间资料.谢谢!
回复

使用道具 举报

0

主题

48

帖子

30.00

积分

新手上路

Rank: 1

积分
30.00
发表于 2020-11-30 22:15:01 | 显示全部楼层
delete a from tablename a where cc=(select max(cc) from tablename where aa=a.aa)
回复

使用道具 举报

0

主题

114

帖子

69.00

积分

新手上路

Rank: 1

积分
69.00
发表于 2020-12-1 00:00:01 | 显示全部楼层
delete aa from tablename where cc=(select max(cc) from tablename group by aa)
回复

使用道具 举报

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-12-1 01:00:01 | 显示全部楼层
例如表aa:
aa    bb     cc
1      255    20161212
1      15     20161210
2      33     20160612
2       11     20160101
按cc用DESC排序了,
如我想删除where aa='2'or 其他中处的最近时间资料.
结果表aa:
aa    bb     cc
1      255    20161212
2      33     20160612

谢谢!
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-1 10:45:01 | 显示全部楼层
-- 你的题目没讲清楚,我在此也懒得去臆测,虽然下边这段代
-- 码也许不能给你答案,但可以给你一个思路.

declare        @aa table (
        aa        int ,
        bb        int ,
        cc        char(8)
        )

insert        into @aa (aa , bb , cc)
select        1 , 255 , '20161212' union all
select        1 , 15 , '20161210' union all
select        2 , 33 , '20160612' union all
select        2 , 11 , '20160101'

--/进行删除操作以前,必须进行 select 操作,先看清楚要删的是否正确.
select        *
from        @aa a
where        cc = (
        select        max(cc)
        from        @aa
        where        aa = a.aa
        )

-- 经上一步确认无误后再执行下边一步,进行删除.
delete        a
from        @aa a
where        cc = (
        select        max(cc)
        from        @aa
        where        aa = a.aa
        )

-- 查看删除后的结果
select        * from @aa
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-1 11:00:01 | 显示全部楼层
-- 送你段代码,也许用得着的.

declare        @user table (user_name varchar(20) , join_dt datetime)

insert        into @user (user_name , join_dt)
select        '张一' , '2017-01-01 01:30:00' union all
select        '张二' , '2017-01-01 01:50:00' union all
select        '张三' , '2017-01-01 02:30:00' union all
select        '张四' , '2017-01-01 21:30:00' union all

select        '李一' , '2017-01-02 01:30:00' union all
select        '李二' , '2017-01-02 03:30:00' union all
select        '李三' , '2017-01-02 07:30:00' union all
select        '李四' , '2017-01-02 09:30:00' union all
select        '李五' , '2017-01-02 10:30:00'


--/查询每日前两名用户
select        *
from        @user a
where        join_dt <= any (
        select        top 2 join_dt
        from        @user
        where        convert(varchar(10) , join_dt , 112) = convert(varchar(10) , a.join_dt , 112)
        order        by join_dt
        )
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表