从另一个表中的某些值的总和创建SQL视图

时间:2014-05-14 19:11:43

标签: sql view

我想根据另一个表中某些列的总和创建一个SQL视图。这很容易,但是,我希望新视图根据另一个表中的数据包含多个不同的总和:

Table1:
ID: Integer (PK, Autoenumerated)
CompanyID: Integer (Not the PK!)
Amount: Integer

每个CompanyID在表格中可以有多个不同的金额,我想总结所有这些金额。

View1:
TotalAmount: Integer
CompanyID: Integer

视图中的CompanyID应与Table1中的CompanyID匹配,但TotalAmount应该是Table1中为该CompanyID找到的所有金额的总和。

还有什么建议可以简单地改善查询?这个看起来很简单,但我当然无法想象它。

3 个答案:

答案 0 :(得分:2)

create view V_AmountByCompany
as
select CompanyID, sum(Amount) as sumAmount
from YourTable
group by CompanyID

顺便提一下ID是没有意义的,因为你有很多Id by companyID:那么哪一个会保留?如果你真的想要它,你可以选择MIN(ID)MAX(ID),但又一次,选择什么?

答案 1 :(得分:2)

此查询将按公司汇总。这是你想要的吗?

CREEATE VIEW SumsView
AS
SELECT CompanyID
     , SUM(Amount) TotalAmount
  FROM Table1
 GROUP BY CompanyID

在您提到的问题中,您希望ID列包含在视图中,但您如何将ID与汇总金额相关联?

我能想到的唯一方法是你要复制总和,如下:

CREEATE VIEW SumsView
AS
  SELECT  T.ID
        , T.CompanyID
        , A.TotalAmount
    FROM Table1 T
    INNER JOIN (SELECT CompanyID
                     , SUM(Amount) TotalAmount
                  FROM Table1
                 GROUP BY CompanyID) A
            ON T.CompanyID = A.CompanyID

答案 2 :(得分:2)

你应该这样做

create view newsumbycompanyid
as
select companyid,sum(amount) as newamount
from table1
group by companyid
相关问题