我有一张桌子。它具有以下结构
货物接收项目
- ID
- item_id
- 数量
- created_at
我正在尝试获取具有以下条件的行
有一个 item_id
当数量列之和等于某个值时
所以例如我有以下数据
+----+---------+----------+------------+
| id | item_id | quantity | created_at |
+----+---------+----------+------------+
| 1 | 2 | 11 | 2019-10-10 |
| 2 | 3 | 110 | 2019-10-11 |
| 3 | 2 | 20 | 2019-11-09 |
| 4 | 2 | 5 | 2019-11-10 |
| 5 | 2 | 1 | 2019-11-11 |
+----+---------+----------+------------+
我尝试了以下查询:
SET @sum:= 0;
SELECT item_id, created_at, (@sum:= @sum + quantity) AS SUM, quantity
FROM goods_receiving_items
WHERE item_id = 2 AND @sum<= 6
ORDER BY created_at DESC
如果我不使用ORDER BY
,那么查询会给我 ID '1'。但如果我使用ORDER BY
它将返回所有带有item_id = 2
.
应按此顺序仅返回 ID '5' 和 '4'
我似乎无法解决这个问题,这ORDER BY
对我的任务至关重要。任何帮助,将不胜感激