2016-10-25 1 views

Répondre

0

Ce n'est pas l'approche procédurale mais en utilisant SQL, vous pouvez obtenir la sortie comme vous le souhaitez.

Créer une table indicateur:

create table test (indicator int); 
insert into test values (0); 
insert into test values (1); 
insert into test values (2); 
insert into test values (3); 
insert into test values (4); 
insert into test values (5); 
insert into test values (6); 
insert into test values (7); 
insert into test values (8); 
insert into test values (9); 
insert into test values (10); 
insert into test values (11); 

table originale contenant des valeurs:

create table test1 (col1 char(5),col2 date); 

insert into test1 values ('A','01-Jan-2000'); 
insert into test1 values ('A2','03-Mar-1998'); 

Maintenant, la requête finale pour obtenir la sortie:

SELECT col1 
    ,to_char(add_months(col2, indicator), 'DD-MM-YYYY') as_date 
FROM test1 
    ,test 
ORDER BY col1 
    ,as_date; 

sortie:

A 1/1/2000 
A 1/2/2000 
A 1/3/2000 
A 1/4/2000 
A 1/5/2000 
A 1/6/2000 
A 1/7/2000 
A 1/8/2000 
A 1/9/2000 
A 1/10/2000 
A 1/11/2000 
A 1/12/2000 
A2 3/1/1999 
A2 3/2/1999 
A2 3/3/1998 
A2 3/4/1998 
A2 3/5/1998 
A2 3/6/1998 
A2 3/7/1998 
A2 3/8/1998 
A2 3/9/1998 
A2 3/10/1998 
A2 3/11/1998 
A2 3/12/1998