SQL查询,使用Sum进行多重打字

时间:2015-09-19 11:37:13

标签: sql sql-server

我在SQL数据库中有2个表。

Company_Shares

HolderOfShares    NumberOfShares    ShareOfComapy 
A                 100               Nova
A                 30                Samsung
B                 40                Nova
C                 70                Hyper
A                 +20               Samsung
B                 +50               Nova   


Price_of_single_Share

ShareOfComapny    PricePerShare
Nova              10
Samsung           17
Hyper             13

通过这两个表我需要创建一个查询,该查询总结每个HolderOfShares的NumberOfShares和多个股票的数量及其价格,并按照股票的总成本对其进行排序。最后的例子应该是这样的:

HolderOfShares    TotalCostOfItsShares
A                 1850
C                 910
B                 900

请有人帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

如果要回答这个问题,答案可能也是正确的:

SELECT cs.HolderOfShares,
       SUM(cs.NumberOfShares * poss.PricePerShare) as TotalCostOfItsShares
FROM Company_Shares cs JOIN
     Price_of_single_Share poss
     ON cs.ShareOfCompany = poss.ShareOfCompany
GROUP BY cs.HolderOfShares
ORDER BY TotalCostOfItsShares DESC;

注意:我认为ShareOfComapy是拼写错误。

答案 1 :(得分:1)

加入这两个表

    SELECT a.HolderOfShares, SUM(a.NumberOfShares) * b.PricePerShare as TotalCostOfItsShares FROM Company_Shares as a
    JOIN Price_of_single_Share as b ON b.ShareOfComapy = a.ShareOfComapy
    GROUP BY a.HolderOfShares