数据库:sql2008 数据【如图】, DECLARE @val NumERIC(10,4) SET @val=189.97 --数字可能会变

请在线的大侠们看看 如何将SalesOrderDetailID的121317,121316,121315的三行数据查出来啊?或者能查询出121315也行
条件是
DECLARE @val NumERIC(10,4)
SET @val=189.97 --数字可能会变
我需要将排在前面的几行LineTotal值的和大于当前@val变量的数据列出来
最好不用游标操作,不然大数据的时候会直接卡死!
SalesOrderDetailID LineTotal
------------------ ---------------------------------------
121317 8.990000
121316 159.000000
121315 21.980000
121314 8.990000
121313 21.980000
121312 34.990000
121311 35.000000
121310 4.990000
121309 8.990000
121308 53.990000
121307 21.980000

第1个回答  2011-10-20
-------------------- S=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3+…+N)
declare @n int,@s int,@i int
set @n=1
set @s=0
set @i=0
while @n<=10
begin
set @i=@i+@n
set @s=@s+@i
set @n=@n+1
end
print @s

-------------------- S=1+1/2+2/3+3/5+5/8+8/13
declare @n int,@s int,@i int
set @n=1
set @s=0
set @i=0
while @n<=20
begin
set @s=@s+@i/@n
set @i=@n
set @n=@n+1
end
print @s
追问

能根据我上面的数据,写出具体的SQl吗,你贴的这个本不是我想要的,

第2个回答  2011-10-20
要是就根据你说的
select * from 表明 where salesorderdataild > 121315

字段名太长 可能写错了。你自己修改。。。。。

或者 select * from order by salesorderdataild desc top 3

选区数字最大的3行。。。。
第3个回答  2011-10-19
你使用SQL语句试试追问

使用什么SQl语句试试,我就是不知道如何写

相似回答