SQL выбирает несколько строк в таблице, чтобы они суммировались до определенного значения

Как я могу выбрать только несколько строк в следующей таблице, чтобы они суммировались до определенного значения?

Table
-----
id | qty1 | qty2 | qty3 | qty4
------------------------------
1  | 0.0  | 0.0  | 10   | 20
2  | 1.5  | 0.0  | 7.5  | 18
3  | 1.0  | 2.0  | 7.5  | 18
4  | 0.0  | 0.5  | 5    | 13

Скажем, максимальное значение, которое я хочу, составляет 57 ...

Так что мне нужно для выбора строк из предыдущей таблицы таким образом, чтобы qty1 + qty2 + qty3 + qty4 каждой строки, получить до этого значения 57 и отбросить другие строки. В этом примере я бы получил следующее:

id | qty1 | qty2 | qty3 | qty4
------------------------------
1  | 0.0  | 0.0  | 10   | 20
2  | 1.5  | 0.0  | 7.5  | 18

Поскольку 10 + 20 + 1,5 + 7,5 + 18 = 57, поэтому я отбрасываю строки 3 и 4 ...

Теперь я хочу, чтобы верхнее значение было 50, тогда Я должен получить:

id | qty1 | qty2 | qty3 | qty4
------------------------------
1  | 0.0  | 0.0  | 10   | 20
2  | 1.5  | 0.0  | 7.5  | 11

Так как эти значения составляют в сумме 50, а 7 из row2, qty4 не учитывается ... (Кстати, строки упорядочены таким образом, потому что это порядок, в котором я хочу учитывать суммы qtys ... Неверно суммировать сначала строку1, затем 3, затем 2, затем 4, например ... Их всегда следует суммировать в порядке 1,2,3,4 ...)

Что, если я хочу дополнить это? Я имею в виду, что две другие строки я не получил в последнем результате.

Первый случай:

id | qty1 | qty2 | qty3 | qty4
------------------------------
3  | 1.0  | 2.0  | 7.5  | 18
4  | 0.0  | 0.5  | 5    | 13

Второй случай:

id | qty1 | qty2 | qty3 | qty4
------------------------------
2  | 0.0  | 0.0  | 0.0  | 7
3  | 1.0  | 2.0  | 7.5  | 18
4  | 0.0  | 0.5  | 5    | 13

(Если второй случай слишком сложен, как насчет получения:

id | qty1 | qty2 | qty3 | qty4
------------------------------
1  | 0.0  | 0.0  | 10   | 20

Поскольку сложение исходных количеств строки 2 превысит значение 50, я отбрасываю его. .. Дополнение в этом случае должно быть просто:

id | qty1 | qty2 | qty3 | qty4
------------------------------
2  | 1.5  | 0.0  | 7.5  | 18
3  | 1.0  | 2.0  | 7.5  | 18
4  | 0.0  | 0.5  | 5    | 13

)

10
задан Javier Novoa C. 1 March 2012 в 23:16
поделиться