高人来啊~求一条SQL语句~

smallnews 2007-09-06 04:07:23
表movie中
id mnet
1 10
2 20
3 20
4 30
5 40
6 10
7 10
8 20
9 20
10 20
取5条出来,让其mnet总和等于100
如:id=2,id=4,id=6,id=8,id=9就是一组符合条件的
请教ING...
谢谢了~~
...全文
189 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
衣犹未尽 2007-09-06
  • 打赏
  • 举报
回复
钻石大侠确实非同凡响,名副其实啊!
子陌红尘 2007-09-06
  • 打赏
  • 举报
回复
那如果取的条数和总值是一个可变值怎么办呢?~
-----------------------------------------------------------------------------------
用动态SQL拼一个类似的字符串;或者研究一下背包算法。
smallnews 2007-09-06
  • 打赏
  • 举报
回复
jarod_d(世人笑我の痴)

您的方法只能求到一个结果。。。
jarod_d 2007-09-06
  • 打赏
  • 举报
回复

create table t_test
(
id int primary key identity(1,1),
mnet int
)
go
insert into t_test values(10)
insert into t_test values(20)
insert into t_test values(20)
insert into t_test values(30)
insert into t_test values(40)
insert into t_test values(10)
insert into t_test values(10)
insert into t_test values(10)
insert into t_test values(10)
insert into t_test values(20)
insert into t_test values(20)
insert into t_test values(20)
insert into t_test values(20)
go

declare @sum int
declare @id varchar(50)
declare @table table([id] int, mnet int)

while(1=1)
begin
insert into @table([id], mnet) select top 5 [id], mnet from t_test order by newid()

select @sum = sum(mnet) from @table
if(@sum = 100)
break

delete @table
end

select * from @table
jarod_d 2007-09-06
  • 打赏
  • 举报
回复

declare @sum int
declare @id varchar(50)
declare @table table([id] int, mnet int)

while(1=1)
begin
insert into @table([id], mnet) select top 5 [id], mnet from t_test order by newid()

select @sum = sum(mnet) from @table
if(@sum = 100)
break

delete @table
end

select * from @table


smallnews 2007-09-06
  • 打赏
  • 举报
回复
libin_ftsafe兄~

那如果取的条数和总值是一个可变值怎么办呢?~
kk19840210 2007-09-06
  • 打赏
  • 举报
回复
mark
star1083 2007-09-06
  • 打赏
  • 举报
回复
哈哈!看到了....
Limpire 2007-09-06
  • 打赏
  • 举报
回复
哈,movie是表名啊
Limpire 2007-09-06
  • 打赏
  • 举报
回复
Mark
star1083 2007-09-06
  • 打赏
  • 举报
回复
这个我还是第一次见到.. movie 怎么在 联机帮助做怎么找不到呢?
kelph 2007-09-06
  • 打赏
  • 举报
回复
ls正解
star1083 2007-09-06
  • 打赏
  • 举报
回复
这个真的是学习了.....
子陌红尘 2007-09-06
  • 打赏
  • 举报
回复
select
a.id,b.id,c.id,d.id,e.id
from
movie a,
movie b,
movie c,
movie d,
movie e
where
a.id<b.id and b.id<c.id and c.id<d.id and d.id<e.id
and
a.mnet+b.mnet+c.mnet+d.mnet+e.mnet=100

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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