假如有趟车有开行规律,10代表隔日开,110代表开两天停一天,依此类推,
有一个表:
act_date start_date stop_date rule checi
2007-0817 2007-0817 2007-0825 10 111能不能根据开行规律得到下面结果:
act_date checi
2007-0817 111
2007-0819 111
2007-0821 111
2007-0823 111
2007-0825 111谢谢!
有一个表:
act_date start_date stop_date rule checi
2007-0817 2007-0817 2007-0825 10 111能不能根据开行规律得到下面结果:
act_date checi
2007-0817 111
2007-0819 111
2007-0821 111
2007-0823 111
2007-0825 111谢谢!
解决方案 »
- 存储过程_错误
- oracle定时自动抽取数据到mysql?
- 一个简单的select语句问题?
- dbms_job问题
- 求救!我的OracleOraHome92ManagementServer启动不了
- 如何写这个SQL语句?(有点类似字符串求和)
- 急!ORACLE角色问题!超简单!来者有分!
- 以游标方式返回数据集的存储过程,游标需要人工关闭吗?
- 安装ORACLE的问题!在线等待!请各位帮帮忙!
- ORacle 写 blob字段 出错 ,求大神指点
- 【问题很严重啊——死要死个明白】关于FOR UPDATE语句
- 一个非常奇怪的存储过程出错:Error: PLS-00103:出现符号 "("在需要下列之一时
2 from (
3 select to_date('2007-08-17','yyyy-mm-dd') as act_date,
4 to_date('2007-08-17','yyyy-mm-dd') as start_date,
5 to_date('2007-08-25','yyyy-mm-dd') as stop_date,
6 10 as rule,
7 111 checi
8 from dual
9 )tt,
10 (
11 select rownum rn from all_objects where rownum < 100
12 )zz
13 where tt.start_date+(rn-1)*2<=tt.stop_date;TT.ACT_DATE+(RN-1)*2
--------------------
8/17/2007
8/19/2007
8/21/2007
8/23/2007
8/25/2007
act_date checi
2007-0817 111
2007-0819 111
2007-0820 111
2007-0822 111
2007-0823 111
2007-0825 111
FROM (SELECT tt.start_date + ROWNUM - 1 bb,
SUBSTR (RPAD (tt.rule,
(tt.stop_date - tt.start_date + 1),
tt.rule
),
ROWNUM,
1
) cc
FROM all_objects,
(SELECT TO_DATE ('2007-08-17', 'yyyy-mm-dd') AS act_date,
TO_DATE ('2007-08-17', 'yyyy-mm-dd') AS start_date,
TO_DATE ('2007-08-25', 'yyyy-mm-dd') AS stop_date,
10 AS rule, 111 checi
FROM DUAL) tt
WHERE ROWNUM <= tt.stop_date - tt.start_date + 1)
WHERE cc = 1
act_date start_date stop_date rule checi
2007-0817 2007-0817 2007-0825 10 111
2007-0817 2007-0817 2007-0825 110 222
怎么能把两趟车次都生成出来呢?