How to do query and display the records until it reaches a certain number?
Suppose you want to select student until the total sum of the student’s money reaches 1000?
Addition
Student ID Student Name Student Money
--------- ----------- --------------
1 John 190
2 Jenny 290
3 Ben 200
4 Andy 120
5 Lynna 300
If I wanna stop at 500, I would get record number 1 and 2 (190 + 290).
If I wanna stop at 1000, I would get record 1 until 4.
There is no “intrinsic” order to a SQL table, so you’ll have to specify some ORDER BY clause to give that “until” phrase any meaning. Given that, the sum of the “first” N records can be obtained with a SELECT SUM(money) FROM student ORDER BY xxx LIMIT N. Using an auxiliary table INTS which has integers in natural order, you can find the maximum suitable N by something like:
and finally insert this as another nested SELECT for the LIMIT clause in your overall SELECT. All of this smells like it would be rather inefficient, though! As often when nested SELECTs seem too many and too slow, an alternative is doing this in steps: first build a temporary table with the “progressive sums”, then use that to help you find the limit you need.