Sql 在多行条件下创建视图

Sql 在多行条件下创建视图,sql,oracle,view,Sql,Oracle,View,我有这样一个周期表: Value Name Month 10 P00006 201412 20 P00006 201501 30 P00006 201502 100 P00007 201509 200 P00007 201510 300 P00007 201511 我想在此表的基础上创建一个视图,在该视图中,我对每个名称加总前几个月的值。 这是预期的结果: AccruedValue Name Month 10 P00006 201412 30 P0

我有这样一个周期表:

Value   Name    Month

10  P00006  201412
20  P00006  201501
30  P00006  201502
100 P00007  201509
200 P00007  201510
300 P00007  201511
我想在此表的基础上创建一个视图,在该视图中,我对每个名称加总前几个月的值。 这是预期的结果:

AccruedValue  Name    Month

10  P00006  201412
30  P00006  201501
60  P00006  201502
100 P00007  201509
300 P00007  201510
600 P00007  201511
我不确定不使用光标就可以实现这一点,因此我们将非常感谢您的帮助。

测试数据:

create table cycles 
(value NUMBER, name VARCHAR2(250), month VARCHAR2(250));
/
INSERT INTO cycles VALUES(10  , 'P00006','201412');
INSERT INTO cycles VALUES(20  , 'P00006','201501');
INSERT INTO cycles VALUES(30  , 'P00006','201502');
INSERT INTO cycles VALUES(100 , 'P00007','201509');
INSERT INTO cycles VALUES(200 , 'P00007','201510');
INSERT INTO cycles VALUES(300 , 'P00007','201511');
查看我的视图:

create or replace view my_view as 
select 
   sum(value) over (partition by name order by month ) as AccruedValue ,
   name ,
   month 
from cycles;
结果:

select * from v;

10  P00006  201412
30  P00006  201501
60  P00006  201502
100 P00007  201509
300 P00007  201510
600 P00007  201511

视图返回的结果与您在问题中显示的预期结果完全相同对不起,您是对的:)。非常感谢你的帮助。本主题已结束