补齐缺失日期的最快方式,谢谢

[复制链接]
查看11 | 回复9 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
给定如下数据
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
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
参考第4楼


http://www.itpub.net/viewthread.php?tid=970868
[ 本帖最后由 junsansi 于 2009-1-22 10:58 编辑 ]
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
不带这样的。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
四楼没有啥呀!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
原帖由 cuicg 于 2009-1-22 10:58 发表
四楼没有啥呀!

bs


回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
正在写,写完发到四楼,呵呵
这下你满意了吧!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
自己写个stored-procedure!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
完了,写不出来了!
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
原帖由 junsansi 于 2009-1-22 10:55 发表
参考第4楼


http://www.itpub.net/viewthread.php?tid=970868

谢谢,但好像和我的差别蛮大的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行