我有两列A和B,两列都在计算,我需要在对角线加法的基础上计算B. B1 = A1,B2 = B1 + A2,B3 = B2 + A3。等。
请帮我解决如何制作.. 我有两个选项可以在SSRS中编辑它,也可以在数据集生成的过程中编辑它。
答案 0 :(得分:0)
"对角线添加"是一个有趣的术语,通常被称为"累积和"。您可以在SQL Server 2012及更高版本中执行此计算:
select A, sum(A) over (order by id)
from table t;
在早期版本中:
select A,
(select sum(t2.A) from table t2 where t2.id <= t.id) as B
from table t;
请注意,这两个都使用名为id
的列。这可以是指定表中行的顺序的任何列。 SQL(通常)和SQL Server(特别是)中的表是无序集。所以没有&#34;之前的概念&#34;除非列指定了排序。
答案 1 :(得分:0)
至于我,使用连接而不是子查询会更好,但是Gordon Linoff的版本也会很好用!
SELECT a1.SumAmt as A, SUM(b1.SumAmt) as B
FROM Table1 a1
INNER JOIN Table1 b1 on a1.ID >= b1.ID
GROUP BY a1.ID, a1.SumAmt
ORDER BY a1.ID