【问题标题】:Sum 2 rows in SQL with join用连接在 SQL 中求和 2 行
【发布时间】:2020-11-25 10:03:44
【问题描述】:

我想加入 2 个表并获得 2 行的总和:

表 A

barcode product store sold
---------------------------
AA       Tea     1    200
AA       Tea     2    300
BB       Milk    3    100

表 B

warehouse  barcode   product    stock   
--------------------------------------
WH1          AA      Tea        1000
WH2          AA      Tea         200
WH3          BB      Milk        500

预期结果:

store   barcode   product  sold    stock
----------------------------------------
1          AA       Tea     200     1200
2          AA       Tea     300     1200
3          BB       Milk    100      500 

知道如何获得这个吗?

【问题讨论】:

  • 这是什么逻辑……你需要解释一下。
  • 也请标记您的 dbms。
  • 子查询会这样做 - 像这样:选择商店、条形码、产品、已售、库存 = (select sum(stock) from b where a.product = b.product and a.barcode = b.barcode) 从一个

标签: sql join sum left-join union-all


【解决方案1】:

大概:

select a.store, a.barcode, a.product, a.sold,
    (select sum(b.stock) from tableb b where b.barcode = a.barcode) as stock
from tablea a

【讨论】:

    【解决方案2】:

    将表 A 视为 table_A,将表 B 视为 table_B 下面是查询。

    select A.store, A.barcode , A.product, A.sold, X.stock from table_a as A
    inner join
    (
    select barcode, sum(stock) as stock from table_B
    group by barcode
    ) as X
    on A.barcode = X.barcode
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多