【发布时间】:2021-05-01 21:41:59
【问题描述】:
我有一个问题正在解决,我希望有人仔细检查我的代码,因为我正在尝试计算数据库中每个仓库的收入并且返回值似乎很高 - 它返回数十个数以百万计的大多数仓库。不是不可能的高,但足以让我再看一眼。
这是我的代码:
SELECT WAREHOUSES.WAREHOUSE_ID, WAREHOUSES.WAREHOUSE_NAME, SUM(ORDER_ITEMS.QUANTITY *
PRODUCTS.LIST_PRICE) AS TOTAL
FROM WAREHOUSES
JOIN INVENTORIES ON INVENTORIES.WAREHOUSE_ID = WAREHOUSES.WAREHOUSE_ID
JOIN PRODUCTS ON PRODUCTS.PRODUCT_ID = INVENTORIES.PRODUCT_ID
JOIN ORDER_ITEMS ON PRODUCTS.PRODUCT_ID = ORDER_ITEMS.PRODUCT_ID
GROUP BY WAREHOUSES.WAREHOUSE_NAME, WAREHOUSES.WAREHOUSE_ID
ORDER BY TOTAL DESC;
我的 SUM 有问题吗?我是 SQL 新手,所以我相信您会发现此代码有很多调整 - 我很想听听!
谢谢!
【问题讨论】:
-
这里的“收入”是什么意思?收入通常是指所有已售商品价值的总和,在这种情况下,您几乎可以肯定需要包含
orders表,并且按仓库分组显然没有意义,因为我看不到确定的方法哪个仓库提供了历史订单上的哪些项目。如果您按仓库分组,我猜您确实会按仓库查找库存值,在这种情况下加入order_items可能是不正确的。product表上已有standard_cost和list_price。 -
样本数据和所需结果会有所帮助,最好简化为易于管理的示例。
标签: sql oracle oracle-sqldeveloper