【发布时间】:2020-04-16 13:29:23
【问题描述】:
我有一张桌子。它具有以下结构
goods_receiving_items
- 身份证
- 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 对我的任务至关重要。
任何帮助将不胜感激
【问题讨论】:
标签: mysql mysql-variables