Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Monatserste in Perioden ermitteln

Dieses Thema im Forum "SQLite" wurde erstellt von Wolf-Tilmann, 31 August 2013.

  1. Wolf-Tilmann

    Wolf-Tilmann Aktiver Benutzer

    Hallo zusammen,

    und schon wieder ein Problem :)

    Ich habe hier eine Tabelle, welche mit Perioden gefüllt werden.
    Die Perioden beginnen IMMER am 01 eines Monats.
    Ich benötige eine Möglichkeit alle 01/Monate zwischen dem Beginn und dem Ende jeder Periode zu ermitteln.
    Code:
    CREATE TABLE "periode" (
    "ID" INTEGER PRIMARY KEY,
    "periode" TEXT NOT NULL UNIQUE ,
    "beginn" DATETIME NOT NULL ,
    "ende" DATETIME NOT NULL );
    INSERT INTO "periode" VALUES(1,'a','2011-09-01','2012-04-30');
    INSERT INTO "periode" VALUES(2,'r','2012-05-01','2012-09-30');
    INSERT INTO "periode" VALUES(3,'t','2012-10-01','2013-03-31');
    
    In der Periode a wären also gesucht
    - 2011-09-01
    - 2011-10-01
    - 2011-11-01
    - 2011-12-01
    - 2012-01-01
    - 2012-02-01
    - 2012-03-01
    - 2012-04-01

    Mie mache ich das?

    Vielen Dank
    Einen schönen Abend

    Wolf-Tilmann

    Datenbank: SQLite
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Ich würde es so machen:

    Code:
    test=*# select '2011-09-01'::date + s * '1 day'::interval from generate_series(0, '2012-04-30'::date - '2011-09-01'::date) s where extract (day from '2011-09-01'::date + s * '1 day'::interval) = 1;
      ?column?
    ---------------------
     2011-09-01 00:00:00
     2011-10-01 00:00:00
     2011-11-01 00:00:00
     2011-12-01 00:00:00
     2012-01-01 00:00:00
     2012-02-01 00:00:00
     2012-03-01 00:00:00
     2012-04-01 00:00:00
    (8 rows)
    
    Allerdings verwende ich PostgreSQL.
     
  3. ukulele

    ukulele Datenbank-Guru

    Ich bezweifle stark das SQLite interval und generate_series beherscht geschweige denn irgend eine andere Form des Workaround :(
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Naja, ich weiß es nicht. Für generate_series() kann man sich auch eine Tabelle mit den Zahlen anlegen und dagegen joinen. Quasi ein Workaround für den Workaround ...
     

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden