Нет никакого «внутреннего» порядка в таблице SQL, поэтому вам придется указать какое-либо предложение ORDER BY, чтобы придать этой фразе «до» какое-либо значение. Учитывая, что сумма `` первых '' N записей может быть получена с помощью SELECT SUM (деньги) ОТ студента ORDER BY xxx LIMIT N. Используя вспомогательную таблицу INTS, которая имеет целые числа в естественном порядке, вы можете найти максимально подходящий N чем-то вроде:
SELECT MAX(N) FROM INTS
WHERE (SELECT SUM(money) FROM student ORDER BY xxx LIMIT N) < 1000
и, наконец, вставьте это как еще один вложенный SELECT для предложения LIMIT в вашем общем SELECT. Все это пахнет, как будто это было бы довольно неэффективно, хотя! Как часто, когда вложенные SELECT кажутся слишком большими и слишком медленными, альтернатива делает это поэтапно: сначала создайте временную таблицу с «прогрессивными суммами», а затем используйте ее, чтобы найти нужный предел.