有个表数据如下:
字段有A RQ CS(次数)
A RQ CS
C1121 2012-09-11 3
C1122 2012-09-19 1
C1124 2012-09-19 2想要得到以下效果
A RQ CS
C1121 2012-09-11 3
C1121 2012-09-1 2 3
C1121 2012-09-13 3
C1121 2012-09-14 3
C1122 2012-09-19 1
C1122 2012-09-20 1
C1124 2012-09-19 2
C1124 2012-09-20 2
C1124 2012-09-21 2
日期增加CS(次数)次,并且增加后的日期信息也显示出来,这个通过SQL语句可以实现吗?请大家帮忙看看。
字段有A RQ CS(次数)
A RQ CS
C1121 2012-09-11 3
C1122 2012-09-19 1
C1124 2012-09-19 2想要得到以下效果
A RQ CS
C1121 2012-09-11 3
C1121 2012-09-1 2 3
C1121 2012-09-13 3
C1121 2012-09-14 3
C1122 2012-09-19 1
C1122 2012-09-20 1
C1124 2012-09-19 2
C1124 2012-09-20 2
C1124 2012-09-21 2
日期增加CS(次数)次,并且增加后的日期信息也显示出来,这个通过SQL语句可以实现吗?请大家帮忙看看。
with t1 as
(
select 'C1121' A,date'2012-09-11' RQ,3 cs from dual
union all
select 'C1122' A,date'2012-09-19' RQ,1 cs from dual
union all
select 'C1124' A,date'2012-09-19' RQ,2 cs from dual
)select distinct A,rq+level rq,cs
from t1
connect by level <= cs+1
order by A,RQ A RQ CS
-------------------------------------
1 C1121 2012/9/11 3
2 C1121 2012/9/12 3
3 C1121 2012/9/13 3
4 C1121 2012/9/14 3
5 C1122 2012/9/19 1
6 C1122 2012/9/20 1
7 C1124 2012/9/19 2
8 C1124 2012/9/20 2
9 C1124 2012/9/21 2
select distinct A,rq+level-1 rq,cs
from t1
connect by level <= cs+1
order by A,RQ
select A,t_date,cs
from t1 ,
(select n_date+level-1 t_date
from (select min(RQ) n_date,max(RQ+cs) m_date from t1) t2
connect by level <= m_date-n_date+1) t3
where t_date between rq and rq+cs
order by A,t_date