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