Liste over datoer
Brug generate_series-funktionen for at få en liste over numre, som du kan tilføje til en dato for at få en liste over datoer:
VÆLG CURRENT_DATE + s.a AS-datoer FROM gener_series(0,14,7) som s(a);
Resultat:
datoer------------2004-02-052004-02-122004-02-19
Pivotering
Den sidste del af dit spørgsmål omhandler pivotering af resultatsættet - konvertering af rækkedata til søjledata. PIVOT og UNPIVOT er ANSI, men jeg ser dem ikke som understøttet af PostgreSQL i øjeblikket . Den mest konsekvent understøttede måde at pivotere en forespørgsel på er at bruge aggregerede funktioner:
VÆLG t.konto, SUM(CASE WHEN t.date ='2010-01-01' THEN t.amount END) AS '2010-01-01', SUM(CASE WHEN t.date =' 2010-01-02' THEN t.amount END) AS '2010-01-02', SUM(CASE WHEN t.date ='2010-01-03' THEN t.amount END) AS '2010-01-03' , SUM(t.beløb) AS Saldo FRA (SELECT CURRENT_DATE + s.a AS-datoer FRA gener_series(0,14,7) som s(a)) xLEFT JOIN-TRANSAKTIONER y PÅ y.dato =x.dato GRUPPER EFTER t.konto Dynamiske kolonner
... betyder dynamisk SQL
.