如何根据另一列对同一列的多个单元格求和并显示在另一列中?

时间:2015-01-14 13:55:48

标签: sql-server-2012

我想根据另一列计算同一列的单元格值的总和。并将其显示在另一列中。例如,(在下表中)或click here to see table image


AccountType || AccountName ||金额|| TotalByAccountType


Type1 || name1 || 200 ||

Type1 || name2 || 200 || 400


Type2 || name3 || 200 ||

Type2 || name4 || 200 || 600

Type2 || name5 || 200 ||


Type3 || name6 || 200 || 200


有四列(帐户类型,帐户名称,金额,帐户类型总计)。  我获得前三个领域而不是第四个领域(按帐户类型总计)。 TotalByAccountType = accountType相同的金额总和。 [for type2:(name3 + name4 + name5)的数量总和= 200 + 200 + 200 = 600]。

我是sql server的新手。任何帮助将不胜感激。我想要TotalByAccountType。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

对于查询,您可以使用:

SELECT AccountType,
    AccountName,
    SUM(Amount) OVER (PARTITION BY AccountType) AS TotalByAccountType
FROM UnknownTableName
ORDER BY  AccountType,
    AccountName

这会给你这样的结果:

+-------------+-------------+--------+--------------------+
| AccountType | AccountName | Amount | TotalByAccountType |
+-------------+-------------+--------+--------------------+
| Type1       | name1       |    200 |                400 |
| Type1       | name2       |    200 |                400 |
| Type2       | name3       |    200 |                600 |
| Type2       | name4       |    200 |                600 |
| Type2       | name5       |    200 |                600 |
| Type3       | name6       |    200 |                200 |
+-------------+-------------+--------+--------------------+

如果你想消除"额外的"在TotalByAccountType中,这被认为是显示问题,而不是数据库问题。您需要在报告软件或应用程序中修复它。