我想找到我需要的排序表列的行数,以便它们的总和达到一定的大小。这是我对代码的(非常低效的)尝试:
DECLARE @CURNUM AS INT
DECLARE @CURSUM AS MONEY
SET @CURSUM=0.0
SET @CURNUM=1
WHILE @CURSUM<100000
BEGIN
SET @CURNUM=@CURNUM+1
SELECT @CURSUM = SUM(val1) FROM
(SELECT top (@CURNUM) val1 from table order by val1) a
END
print @CURNUM
有没有人有更快实施的建议?我不知道如何选择表格的第 i 行,但如果我这样做会更有效率,这是我下一个尝试的方法。
一个不幸的限制:由于缺乏数据库特权,我无法创建过程或函数。