Generare righe "intermedie"

From: Giorgio Valoti <giorgio_v(at)mac(dot)com>
To: pgsql-it-generale <pgsql-it-generale(at)postgresql(dot)org>
Subject: Generare righe "intermedie"
Date: 2008-10-27 08:54:05
Message-ID: CACFCBAE-0AFA-48A7-AF42-EEA3C83C6E73@mac.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-it-generale

Ciao a tutti,
mi scuso per il soggetto astruso ma non trovare di meglio. Ho questo
problema che non riesco a risolvere e che coinvolge degli intervalli
di tempo.

Supponiamo di avere una tabella di questo tipo:
da | a
------------+------------
1990-10-16 | 1990-12-15
1990-12-16 | 1996-12-31
1997-01-01 | 1998-12-31
1999-01-01 | 2000-12-31
2001-01-01 | 2001-12-31
2002-01-01 | 2003-12-31
2004-01-01 | 2006-05-01

In cui, come si vede, ho degli intervalli irregolari. A partire da
quella tabella vorrei ottenere questa:
da | a
------------+------------
1990-10-16 | 1990-12-15
1990-12-16 | 1990-12-31
1991-12-16 | 1991-12-31
1992-12-16 | 1992-12-31
1993-12-16 | 1993-12-31
1994-12-16 | 1994-12-31
1995-12-16 | 1995-12-31
1996-12-16 | 1996-12-31
1997-01-01 | 1997-12-31
1998-01-01 | 1998-12-31
1999-01-01 | 1999-12-31
2000-01-01 | 2000-12-31
2001-01-01 | 2001-12-31
2002-01-01 | 2002-12-31
2003-01-01 | 2003-12-31
2004-01-01 | 2004-12-31
2005-01-01 | 2005-12-31
2006-01-01 | 2006-05-01

ovvero, una tabella in cui ogni l’intervallo "a - da" superiore ad un
anno viene "scomposto" nei rispettivi intervalli annuali.

Usando generate_series ottengo qualcosa di lontanamente simile a
quello che voglio ma non è sufficiente.

Qualcuno ha qualche suggerimento?

Grazie
--
Giorgio Valoti

Responses

Browse pgsql-it-generale by date

  From Date Subject
Next Message gabriele.bartolini 2008-10-27 09:20:42 Re: Generare righe "intermedie"
Previous Message Giorgio Valoti 2008-10-22 12:38:01 Re: another pg diff tool