代码之家  ›  专栏  ›  技术社区  ›  Mohan Wijesena

连接两个mySQL表并使用唯一值进行汇总

  •  0
  • Mohan Wijesena  · 技术社区  · 4 年前

    我有两个 mySQL 桌子, 表A和B . 我需要得到一个如表3所示的输出。

    SELECT DISTINCT(Table_A.Code) as 'Code', SUM(Table_A.Qty_On_Hand) as 'On Hand Qty', SUM(Table_B.Counted_Qty) as 'Counted Qty'
    FULL JOIN Table_B ON Table_A.Code = Table_B.Code
    FROM Table_A
    

    表A

    现存量
    A 20
    B类 10
    B类 20
    50
    60

    表B

    代码 盘点数量
    A
    B类 0
    C级
    B类 0
    10

    输出要求:

    代码 现存量 盘点数量
    A 10
    B类 0
    C级 60
    1 回复  |  直到 4 年前
        1
  •  0
  •   Barmar    4 年前

    你需要使用 GROUP BY Table_A.Code DISTINCT .

    SELECT a.Code, SUM(a.Qty_On_Hand) AS `On Hand Qty`, b.`Counted Qty`
    FROM Table_A as a
    JOIN (
        SELECT Code, SUM(Counted_Qty) AS `Counted Qty`
        FROM Table_B
        GROUP BY Code
    ) AS b ON a.Code = b.Code
    GROUP BY a.Code
    

    你需要做一个 SUMs Join tables with SUM issue in MYSQL .