***********************请教一个sql查询的问题**************************
表a
id amount
1 3
2 15
3 20
4 28
给一个数字@b = 30
要查出b在对amount求和的哪条记录的范围内
比如 1 + 15 + 20 > 30并且 1 + 15 < 30
那么@b就应该在3这个id范围内
不知道我说清楚意思没有
谢谢各位
------解决方案--------------------declare @t table(id int,amount int)
insert into @t select 1,3
insert into @t select 2,15
insert into @t select 3,20
insert into @t select 4,28
declare @a int,@b int,@id int
set @a=0
set @b=30
select
@id=case
when @b> @a and @b <=@a+amount then id
else @id
end,
@a =@a+amount
from
@t
select @id as id
/*
id
-----------
3
*/
------解决方案--------------------declare @t table(id int,amount int)
insert into @t select 1,3
insert into @t select 2,15
insert into @t select 3,20
insert into @t select 4,28
select a.id from @t a
where (select sum(amount) from @t where id <a.id) <30 and (select sum(amount) from @t where id <=a.id)> =30