SQL难题. 删除累加的数据

Cooliess 2012-04-13 09:13:07
假如现在有个表是这样的

id count
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 s
9 g
10 j
11 l
12 o
13 p
14 y
15 t



我想删除 字段ID 累加等于20 的数据如何操作呢?

可以按照顺序来删除..


分不是很多. 只是想看下大家的思路.和代码 感谢了!
...全文
157 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cooliess 2012-04-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
SQL code
select number into #t from master..spt_values where type='p' and number between 1 and 256

select a.number beginnum,b.number endnum,
(select sum(number) from #t where number between a.num……
[/Quote]


假如按照ID排列.. 有数据加起来等于20 的数据...

怎么弄呢? 大哥请教了..

这个临时表效率果然不行啊.
tjs_125 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 4 楼 的回复:
还有2-3,2-4的累加呢
[/Quote]
这是什么意思?
SQL777 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
SQL code

/*
id total
----------- -----------
1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36
9 45
……
[/Quote]
还有2-3,2-4的累加呢
tjs_125 2012-04-13
  • 打赏
  • 举报
回复
/*
id total
----------- -----------
1 1
2 3
3 6
4 10
5 15
6 21
7 28
8 36
9 45
10 55
11 66
12 78
--里面没有累加等于20的数据
*/
tjs_125 2012-04-13
  • 打赏
  • 举报
回复
delete from tb
where id in(select t.id
from(
select a.id, sum(b.id) as total
from tb a
join tb b
on b.id <= a.id
group by a.id
) t
where total= 20
)

看看是不是这样,但是按你的数据,好像没有数据被删除
唐诗三百首 2012-04-13
  • 打赏
  • 举报
回复
鄙人不才,看不懂,
SQL777 2012-04-13
  • 打赏
  • 举报
回复
select number into #t from master..spt_values where type='p' and number between 1 and 256

select a.number beginnum,b.number endnum,
(select sum(number) from #t where number between a.number and b.number) sumrange
from #t a,#t b where b.number>a.number
and (select sum(number) from #t where number between a.number and b.number)=20
order by 1
/*beginnum endnum sumrange
----------- ----------- -----------
2 6 20

(所影响的行数为 1 行)


具体应该要根据你的需求。还有待具体的优化。

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧