假设我们有一个包含A,B,C列的表,其中A的数据类型为String,B和C都是整数。我需要从这个列中创建另一个表,其中包含4列 - A,B,总和(C)和D,其中D是C中值的总和,在A列中具有相同的值(如此)和B中的值较少1(比这一个)。例如,对于给定的值" a"在B处的A和1处,它应该返回(在D列中)C中所有值的总和,其中A处的值是" a" B的值为零。
答案 0 :(得分:0)
我认为您正在寻找与此查询类似的内容:
declare @t table (a varchar(1), b int, c int)
insert @t values
('a', 1, 1),
('a', 2, 2),
('b', 3, 3),
('a', 4, 4)
select t.a, t.b,
(
select sum(t1.c)
from @t t1
) c,
(
select isnull(sum(t2.c), 0)
from @t t2
where t2.a = t.a and t2.b = t.b - 1
)
from @t t