SQL在条件

时间:2017-01-18 01:58:26

标签: sql

我有一张表格,其中包含产品,仓库编号(编号1-8),库存物品和库存物品的清单价格。每行包含特定仓库的特定数据。我们总共有8个仓库,所以每个产品在表中都有8条线。

我需要退回产品,即所有8个仓库的手头数量总和,但只想显示所选仓库的唯一清单价格。我可以使用sum-aggregate函数和group-by来返回手头数量的正确总和,但无法弄清楚如何在同一查询中显示一个特定仓库的唯一列表价格。

1 个答案:

答案 0 :(得分:0)

您从未向我们展示过您的架构,但我可以建议以下查询。这里的关键点是,您应该在子查询中而不是在主外部查询中对仓库中给定产品的现有数量求和。然后,将此子查询连接到外部查询,以使用每个产品的现有数量总和。

SELECT p1.*, p2.quantity_sum
FROM products p1
(
    SELECT product, SUM(quantity_on_hand) AS quantity_sum
    FROM products
    GROUP BY product
) p2
    ON p1.product = p2.product
WHERE p2.warehouse_num = 3     -- or whatever warehouse you want to use