【问题标题】:Join 2 tables, sum and group by加入 2 个表,求和和分组依据
【发布时间】:2014-03-11 21:10:04
【问题描述】:

应该相当简单,但我是 SQL 新手,无法让它工作:

Table 1:
ID        Qty
ItemA     3 
ItemB     5  
ItemD     2 

Table 2:
ID        Qty
ItemC    -1
ItemB    1.5 
ItemE     2.2

我只想要一张按 ID 汇总数量的表格。

【问题讨论】:

  • 你能澄清一下你的专栏是什么吗?目前的标记不太清楚。
  • 你能告诉我们你尝试了什么,以及你想要的输出吗?
  • “表 1”和“表 2”对于表来说确实没有用处。为什么你有两个表显然代表完全相同的数据?

标签: sql join group-by sum


【解决方案1】:

类似这样的:

SELECT ID, SUM(Qty) SumQty
FROM
(
    SELECT ID, Qty FROM Table1
    UNION ALL
    SELECT ID, Qty FROM Table2
) A
GROUP BY ID

【讨论】:

  • 忘记添加“group by id”
【解决方案2】:

这将汇总 Qty 字段并按 ID 分组:

SELECT
    a.ID AS id,
    (SUM(a.Qty) + SUM(b.Qty)) as qty_sum
FROM
    [Table 1] as a
        JOIN
    [Table 2] as b ON (a.ID = b.ID)
GROUP BY 1;

你应该从这个例子中得到的关键部分是:

  1. JOIN 这就是两个表的连接方式。请注意,它通过 `ON (a.ID = b.ID)
  2. 确保两个表中的 ID 匹配
  3. 使用SUM 函数获取您的总数。
  4. GROUP BY 群组...

【讨论】:

    【解决方案3】:

    与@patsweet 类似,但使用 INNER JOIN,格式更易于阅读

    SELECT  SUM(t1.Qty + t1.Qty) AS TotalQty ,
            t1.ID
    FROM    [Table 1] t1
            INNER JOIN [Table 2] t2 WITH (NOLOCK) ON t2.ID = t1.ID
    GROUP BY t1.ID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-13
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2012-02-28
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多