从SQL中的第二个表中求和

时间:2016-06-29 03:19:58

标签: sql

我有一张表Owners

Owner   product
-----------------
Jhon    product1
Jhon    product2
Jhon    product3
Chris   product4

另一张表Products

Product   QuantitySold
-----------------------
Product1      3
Product2      5
Product3      2
Product4      7

如何编写SQL查询来计算每个所有者的单位销售总数?

例如对于Jhon我应该得到10(3 + 5 + 2)

我试过了:

Select 
    Owners.owner, 
    sum(Products.quantitySold) 
from 
    Products, Owners
Group by 
    owners.owner

但是,对于任何所有者(17 = 3 + 5 + 2 + 7),它返回quantitySold的总和

非常感谢

2 个答案:

答案 0 :(得分:3)

您忘记了JOIN条件。基本上,您正在使用CROSS JOIN而不是INNER/OUTER JOIN。我的建议是不要使用旧式JOIN语法,而是使用显式JOIN代替:

SELECT
    o.Owner,
    SUM(p.QuantitySold)
FROM Owners o
INNER JOIN Products p
    ON p.Product = o.Product
GROUP BY o.Owner

参考:

答案 1 :(得分:0)

你也可以使用它,

SELECT DISTINCT(A.Owner), SUM(B.QuantitySold) OVER(PARTITION BY A.Owner ORDER BY A.Owner)
FROM OWNERS A
INNER JOIN PRODUCTS B ON A.product = B.product