Announcement

Collapse
No announcement yet.

Abgleich von Zeiträumen und Überschneidungen

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

  • Abgleich von Zeiträumen und Überschneidungen

    Hallo zusammen!

    Ich möchte folgende Abfrage in SQL realisieren:

    Ich habe eine Tabelle mit Verträgen und deren Laufzeiten in Form von zwei Feldern - VAnfang und VEnde. Zu jedem Vertrag gibt es natürlich auch eine Information, wer der Vertragspartner ist - Partner_ID.

    In der Tabelle stehen nur Verträge von Partnern, die 2 oder mehr Verträge abgeschlossen haben.
    Ich möchte jetzt wissen, welche davon zwischendurch ein Jahr oder länger keinen laufenden Vertrag hatten - heißt also, dass irgendwo ein Vertragsende existiert, bei dem mindestens ein Jahr zwischen dem Ende und dem Anfang des nächsten Vertrages liegt.

    Da sich die Verträge teilweise überschneiden und jeder eine unterschiedliche Anzahl hat, habe ich leider keine Ahnung, wie man so etwas in SQL realisieren kann.
    Kann mir da jemand helfen?

    Gruß,
    Frank

  • #2
    Hallo, Frank,

    da sich keiner deines Problems angenommen hat, mal von mir ein Versuch:

    SELECT vertragspartner
    ,id
    ,beginn
    ,ende
    ,vorher
    ,(beginn-vorher) luecke
    FROM
    (
    SELECT t.id
    ,t.vertragspartner
    ,t.beginn
    ,t.ende
    ,lag(t.ende) OVER (PARTITION BY t.vertragspartner ORDER BY t.ende ) vorher
    FROM t5 t
    )
    ORDER BY vertragspartner,beginn
    ;

    VERTRAGSPARTNER ID BEGINN ENDE VORHER LUECKE
    1 4 01.01.04 31.12.04
    1 5 10.03.05 31.03.05 31.12.04 69
    2 1 01.01.05 01.03.05
    2 6 01.02.05 01.06.06 01.03.05 -28
    2 2 01.01.06 31.12.06 01.06.06 -151
    2 3 01.01.08 31.12.08 31.12.06 366

    6 Zeilen ausgewählt.

    Keine Ahnung, ob das jetzt alle deine Konstellationen trifft, aber vielleicht ist es eine Anregung.

    hth

    Ralf

    Comment

    Working...
    X