1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
SQL> r
1 With data As
2 (
3 Select to_date('01/01/2009','DD/MM/YYYY') dat,10 val from dual union all
4 Select to_date('03/01/2009','DD/MM/YYYY'),11 from dual union all
5 Select to_date('05/01/2009','DD/MM/YYYY'),11.5 from dual union all
6 Select to_date('06/01/2009','DD/MM/YYYY'),11 from dual
7 ), times As
8 (
9 Select to_date(lpad(level,2,'0')||'01/2009','DD/MM/YYYY') day from dual connect by level <= 10
10 )
11 Select day, LAST_VALUE(val IGNORE NULLS) over(order by day)
12 From (
13 Select day, val
14 From data
15 RIGHT OUTER JOIN times ON (times.day = data.dat)
16 )
17* order by 1
DAY LAST_VALUE(VALIGNORENULLS)OVER(ORDERBYDAY)
-------- ------------------------------------------
01/01/09 10
02/01/09 10
03/01/09 11
04/01/09 11
05/01/09 11,5
06/01/09 11
07/01/09 11
08/01/09 11
09/01/09 11
10/01/09 11 |
Partager