2016-03-20 9 views
0

Ich möchte eine Abfrage in dieser Art von Tabelle vornehmen.SQL: Wie zusammenhängende Zeiträume zu steuern

table image

Auf der rechten Seite erscheint, was ich will. In Abfrage möchte ich Zeilen, die NIFs mit überlappenden Perioden enthält.

Ich möchte, dass, wenn es eine (oder mehrere) Perioden gibt, die überlappt sind, diese NIF, die Perioden überlappt sind, der Abfrage hinzugefügt werden müssen.

+0

Sie können einen Tag für die korrekte RDBMS (Oracle/SQL Server/MySQL/...?) Hinzuzufügen. Gibt es einen Primärschlüssel in der Tabelle? –

+0

Welches DBMS benutzen Sie? Auch: http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –

+0

gibt es etwas, das ich besser erklären kann? Ich muss das Startdatum der nächsten Zeile mit dem Zeitraum der vorherigen Zeile vergleichen und muss sehen, ob dieses Startdatum im vorherigen Zeitraum enthalten ist. In diesem Fall muss ich diese Zeile in meine Abfrage einfügen. – Dan

Antwort

0

Sie können unter Abfrage für diese Art von Ergebnis verwenden -

SELECT NIF -- use distinct if you want to get distinct NIF value in your result 
    FROM T T1 -- T is your tablename 
WHERE EXISTS (SELECT 1 
      FROM T T2 
     WHERE T1.NIF = T2.NIF 
      AND T1."START" BETWEEN T2."START" AND T2."END" 
      AND T1.ROWID <> T2.ROWID); 
Verwandte Themen