2013-07-03 34 views
0

我有一個查詢。我想選擇這樣的查詢的每一行多行:根據行日期從一個查詢行中選擇多行Oracle

select process, fromdate, todate from 
(
select 'A' as process, to_date('03.04.2013','dd.mm.yyyy') as fromdate, to_date('06.04.2013','dd.mm.yyyy') as todate 
UNION 
select 'B' as process, to_date('06.04.2013','dd.mm.yyyy') as fromdate, to_date('10.04.2013','dd.mm.yyyy') as todate 
) 

這顯示是這樣的:

Process  Fromdate  Todate 
----------------------------------------- 
    A  03.04.2013  06.04.2013 
    B  06.04.2013  10.04.2013 

但我需要一個像這樣的查詢結果:

Process  Date 
----------------------- 
    A  03.04.2013 
    A  04.04.2013 
    A  05.04.2013 
    B  06.04.2013 
    B  07.04.2013 
    B  09.04.2013 

我怎樣才能做到這一點?

thaks ...

回答

0
select process, from_date + n 
from (
    select process, fromdate, todate from 
    (
     select 'A' as process, to_date('03.04.2013','dd.mm.yyyy') as fromdate, to_date('06.04.2013','dd.mm.yyyy') as todate 
     UNION 
     select 'B' as process, to_date('06.04.2013','dd.mm.yyyy') as fromdate, to_date('10.04.2013','dd.mm.yyyy') as todate 
    ) s 
join 
    (select level -1 as n from dual connect by level < 100) a 
on (s.from_date+n < s.todate) 
+0

這真的幫助了我。謝謝! :) –