Sql 连接两个表,求和并按分组
应该相当简单,但我是SQL新手,无法让它工作:Sql 连接两个表,求和并按分组,sql,join,group-by,sum,Sql,Join,Group By,Sum,应该相当简单,但我是SQL新手,无法让它工作: Table 1: ID Qty ItemA 3 ItemB 5 ItemD 2 Table 2: ID Qty ItemC -1 ItemB 1.5 ItemE 2.2 我只需要一个表,表中的数量按ID求和。如下所示: SELECT ID, SUM(Qty) SumQty FROM ( SELECT ID, Qty FROM Table1 UNIO
Table 1:
ID Qty
ItemA 3
ItemB 5
ItemD 2
Table 2:
ID Qty
ItemC -1
ItemB 1.5
ItemE 2.2
我只需要一个表,表中的数量按ID求和。如下所示:
SELECT ID, SUM(Qty) SumQty
FROM
(
SELECT ID, Qty FROM Table1
UNION ALL
SELECT ID, Qty FROM Table2
) A
GROUP BY ID
这将对
数量
字段求和,并按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;
您应从本示例中了解的关键部分包括:
JOIN
这就是两个表的连接方式。请注意,它通过`ON(a.ID=b.ID)确保两个表中的ID匹配SUM
函数获取总数分组依据
分组与@patsweet类似,但使用内部连接,格式更易于阅读
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
你能澄清一下你的专栏是什么吗?当前的标记不太清楚。您能告诉我们您尝试了什么,以及您想要的输出吗?“表1”和“表2”对于表来说确实不是有用的名称。为什么有两个表显然表示完全相同的数据类型?忘记添加“按id分组”