【发布时间】:2021-05-10 00:32:10
【问题描述】:
这个问题是这里问题Query to get all records until the sum of column less than or equal a value的延伸
对于表格:项目
| slno | item | price |
|---|---|---|
| 1 | item1 | 1000 |
| 2 | item2 | 2000 |
| 3 | item3 | 3000 |
| 4 | item4 | 4000 |
| 5 | item5 | 5000 |
| 6 | item6 | 6000 |
表格:值
| id | value |
|---|---|
| 1 | 3500 |
| 2 | 6000 |
| 3 | 10000 |
| 4 | 21000 |
获取总和(价格)等于或小于表值中每个数字的项目中的所有记录
结果是
| id | item |
|---|---|
| 1 | item1 |
| 1 | item2 |
| 2 | item1 |
| 2 | item2 |
| 2 | item3 |
| 3 | item1 |
| 3 | item2 |
| 3 | item3 |
| 3 | item4 |
| 4 | item1 |
| 4 | item2 |
| 4 | item3 |
| 4 | item4 |
| 4 | item5 |
| 4 | item6 |
SELECT slno, item, price
FROM
(
SELECT slno, item, price,
(
SELECT SUM(price)
FROM table1
WHERE slno <= t.slno
) total
FROM table1 t
) q
WHERE total <= 10000
ORDER BY slno
以上解决方案适用于单个值 10000 此解决方案由 https://stackoverflow.com/users/1920232/peterm 提供
如何获取表中每个值的记录:值
【问题讨论】: