如何为此…构造SQL查询。。。?

如何为此…构造SQL查询。。。?,sql,Sql,我想做一些数学运算,但每行的时间 例如: A B C D ------------------------------- 100 -50 =50 20160101 100 0 =150 20160102 100 -50 =100 20160103 所以基本上C列总是所有过去的A+B列的总和,但不是未来的。有人知道如何在SQL中实现这一点吗 我可以在代码

我想做一些数学运算,但每行的时间

例如:

A         B        C         D
-------------------------------
100      -50       =50      20160101 
100       0        =150     20160102
100      -50       =100     20160103
所以基本上C列总是所有过去的A+B列的总和,但不是未来的。有人知道如何在SQL中实现这一点吗

我可以在代码中这样做,但我希望在SQL中这样做,并在表中显示结果


另外,我的英语不是最好的,所以如果我不够清楚,请尽管问

这称为累积或运行总和。普通方法使用ANSI标准窗口函数:

select a, b,
       sum(a + b) over (order by d) as c,
       d
from t;
如果您的SQL版本不支持窗口函数,则可以使用相关子查询,通常性能会差得多:

select a, b,
       (select sum(a + b) from t t2 where t2.d <= t.d) as c,
       d
from t;

这称为累积或运行总和。普通方法使用ANSI标准窗口函数:

select a, b,
       sum(a + b) over (order by d) as c,
       d
from t;
如果您的SQL版本不支持窗口函数,则可以使用相关子查询,通常性能会差得多:

select a, b,
       (select sum(a + b) from t t2 where t2.d <= t.d) as c,
       d
from t;

SQL Server是哪一年的?不知道c列是做什么的,为什么第二列是150,第三列是100?您使用的是哪种DBMS?博士后?Oracle?SQL Server是哪一年?不知道c列是做什么的,为什么第二列是150,第三列是100?您使用的是哪种DBMS?博士后?Oracle?谢谢,第二个解决方案非常有效,只是在最后增加了d的订单。谢谢,第二个解决方案非常有效,只是在最后增加了d的订单。