【发布时间】:2018-11-26 15:34:12
【问题描述】:
我有一个名为“store_update_stock”的 MySQL 表来存储物品的购买和发行。订单状态栏在需要时维护状态,“购买”或“发出”。表中采购数量用正值表示(如:-10),出库数量用负值表示(如:--2)。
为了获取购买和问题摘要,我使用了以下查询。
SELECT item_id, item_name, order_status, (CASE order_status
WHEN "issue" THEN store_update_stock_details.qty * (-1)
ELSE store_update_stock_details.qty
END) quantity FROM store_update_stock
并生成预期的输出如下:
+---------+-----------+--------------+----------+
| item_id | item_name | order_status | quantity |
+---------+-----------+--------------+----------+
| 1000 | A4 | purchase | 10 |
| 1001 | A3 | purchase | 5 |
| 1000 | A4 | issue | 2 |
| 1000 | A4 | issue | 3 |
| 1001 | A3 | purchase | 6 |
+---------+-----------+--------------+----------+
但我需要在执行购买和问题后通过修改上述查询来进一步了解每个项目的余额,并获得如下输出:
+---------+-----------+---------+
| item_id | item_name | balance |
+---------+-----------+---------+
| 1000 | A4 | 5 |
| 1001 | A3 | 11 |
+---------+-----------+---------+
在我的查询中可以做些什么来获得所需的输出。谁能帮帮我?
【问题讨论】:
-
看起来您可能需要的只是一个简单的汇总和一个分组:
select item_id, item_name, sum(quantity) as balance from store_update_stock group by item_id, item_name也许? -
@jpw。就是这样
标签: mysql