给定如下数据
create table test
(
group_id number,
t_date date,
sale_amount number
);
insert into test values(1,sysdate-21,100);
insert into test values(1,sysdate-18,200);
insert into test values(2,sysdate-19,50);
insert into test values(2,sysdate-17,20);
commit;
SQL> select * from test;
GROUP_ID T_DATE SALE_AMOUNT
---------- ------------ -----------
1 01-JAN-09
100
1 04-JAN-09
200
2 03-JAN-09
50
2 05-JAN-09
20
给定一个结束日期 比如2009-01-06
然后要求得到如下结果
GROUP_ID T_DATE SALE_AMOUNT
---------- ------------ -----------
1 01-JAN-09
100
1 02-JAN-09
100
1 03-JAN-09
100
1 04-JAN-09
200
1 05-JAN-09
200
1 06-JAN-09
200
2 03-JAN-09
50
2 04-JAN-09
50
2 05-JAN-09
20
2 06-JAN-09
20
需求:
1、以group_id分组,每组补齐缺失的日期,并添加记录,其中sale_amount的值取上一条记录的值
2、如果结束日期大于每组的最大日期,那么要添加记录到结束日期,
比如group_id是1的最大日期是2009-01-04, 但是要补齐到 2009-01-06
|