Announcement

Collapse
No announcement yet.

SQLite Eingaben hochrechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • SQLite Eingaben hochrechnen

    Eine schöne Karwoche wünsche ich,

    gibt es eine Möglichkeit, evtl. über einen Trigger, die zwischen zwei Daten liegenden Monate ermitteln, und in eine Tabelle eintragen zu lassen?

    Ich habe eine Tabelle
    [HIGHLIGHT=SQL]
    CREATE TABLE "t_perioden" (
    "periode" TEXT PRIMARY KEY NOT NULL UNIQUE ,
    "periodelang" TEXT NOT NULL UNIQUE,
    "p_beginn" DATETIME NOT NULL ,
    "p_ende" DATETIME NOT NULL
    )
    [/HIGHLIGHT]

    In dieser Tabelle steht z.B.:

    [HIGHLIGHT=SQL]
    INSERT INTO "t_perioden" ( periode , periodelang , p_beginn , p_ende ) VALUES ('p11/12','Winter 2011/2012','2011-10-01','2012-03-31');
    INSERT INTO "t_perioden" ( periode , periodelang , p_beginn , p_ende ) VALUES ('p12','Sommer 2012','2012-04-01','2012-09-30');
    [/HIGHLIGHT]

    Mit diesem View lasse ich mir die Anzahl der Monate ausgeben.

    [HIGHLIGHT=SQL]

    CREATE VIEW "v_anzahlmonate" AS
    SELECT
    periode Periode,
    STRFTIME('%m',( STRFTIME ('%J',p_ende , '+1 month' ) - STRFTIME ('%J',p_beginn))) Monate
    FROM perioden
    [/HIGHLIGHT]

    Jetzt suche ich eine Möglichkeit, die je Periode betroffen Monate in einer weiteren Tabelle ausgeben zu lassen.
    [HIGHLIGHT=SQL]
    CREATE TABLE “t_monate” (
    “id” INTEGER PRIMARY KEY,
    “monat” DATETIME NOT NULL,
    “periode” TEXT NOT NULL
    )
    [/HIGHLIGHT]
    Diese Tabelle t_monate möchte ich automatisch nach Eingabe einer Periode in t_perioden gefüllt bekommen.
    id monat periode
    0 2011-10-01 p11/12
    1 2011-11-01 p11/12
    2 2011-12-01 p11/12
    3 2012-01-01 p11/12
    4 2012-02-01 p11/12
    5 2012-03-01 p11/12
    6 2012-04-01 p12
    7 2012-05-01 p12
    8 2012-06-01 p12
    9 2012-07-01 p12
    10 2012-08-01 p12
    11 2012-09-01 p12
    Wenn ich for oder while verwenden könnte wäre das ein leichtes, aber ohne geeignete Sprache. Denn: ganz wichtig, bis auf SQL kann ich keine Sprache verwenden (siehe Signatur).

    Könntet Ihr mir hier weiterhelfen?

    Und schon einmal „frohe Ostern“



    Wolf-Tilmann
    Aktuell "unerlaubt" verwendete Datenbank: SQLite - Da kommt mein Admin nicht dahinter :-)

    Ach ja:
    Daten lassen sich am Besten mit der Keule bearbeiten.

  • #2
    Ich versteh nicht so richtig was Du willst.

    Trigger sind allerdings dazu da, auf eine DML Operation zu reagieren und nachfolgende Aktionen zu veranlassen.
    So ein wenig kommt es mir vor, als brauchst Du eine Pivotisierung.
    Damit kann man anhand einer (meist statischen) Musterdatentabelle neue Daten erzeugen oder lückenhafte Bestandsdaten gegen definierte Vorgaben joinen.
    Kannste ja mal nachschlagen oder Deine Erklärung verfeinern.
    Gruß, defo

    Comment

    Working...
    X