【发布时间】:2021-07-06 15:36:55
【问题描述】:
想要在需要生产的情况下生成未结订单的结果。问题是每个部分可能有多个未结订单。使用 GROUP BY,我的代码只给了我一个订单,但确实给了我总 Production_Needed(对于有足够库存的订单,这也是一个负值)。
我的 SUM(...) 作为 Production_Needed 是否需要在 WHERE 中? 谢谢,
SELECT part.part_ID AS Part_Part_ID,
part.Inventory, part.part_number,
ord.part_id AS Order_Part_ID,
ord.order_type, ord.quantity_ordered, ord.quantity_shipped,
SUM(ord.quantity_ordered - ord.quantity_shipped - part.Inventory) AS Production_Needed
FROM production_orders ord
JOIN production_part part ON ord.part_ID = part.part_ID
WHERE ord.is_Active = True AND ord.order_type = 0
GROUP BY Order_Part_ID
ORDER BY part.part_number ASC
数据生产_Part部分
| Part_ID | Part_Inventory | Part_Number |
|---|---|---|
| 1 | 12500 | 97-528 |
| 2 | 0 | FC2569 |
| 3 | 1000 | 39367 |
数据生产_订单订单
| Order_Part_ID | Order_Type | Quantity_Ordered | Quantity_Shipped |
|---|---|---|---|
| 1 | 0 | 8000 | 0 |
| 2 | 0 | 1000 | 500 |
| 2 | 0 | 1000 | 0 |
| 3 | 1 | 10 | 0 |
期望的结果 - 仅需要生产的零件
| Part_ID | Quantity_Ordered | Quantity_Shipped |
|---|---|---|
| 2 | 1000 | 500 |
| 2 | 1000 | 0 |
【问题讨论】:
-
请用一些示例数据(查询的来源和结果)编辑您的问题
-
从逻辑上讲,我认为您希望在从库存中减去之前对订单数量进行汇总。这就是为什么...假设您有 3 个 10x0、20x0、30x10 的项目 A 订单,并且您有 5 个库存。这意味着您总共订购了 60 个,并且已发货 10 个。如果按照您概述结果的方式进行操作,则结果将是 (10-0-5)+(20-0-5)+(30-10-5) 请注意它如何从每个订单中的库存中减去 5。你只希望这种情况发生一次。