我想根据另一列计算同一列的单元格值的总和。并将其显示在另一列中。例如,(在下表中)或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。有什么建议吗?
答案 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
中,这被认为是显示问题,而不是数据库问题。您需要在报告软件或应用程序中修复它。