SQL难以计算

时间:2015-12-01 22:14:55

标签: sql

假设我们有一个包含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的值为零。

1 个答案:

答案 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