Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#5

Re: SELF JOIN - Beispiel konstruieren

  Alt 17. Aug 2009, 09:05
So, ich habe jetzt alles ausprobiert und eure Tipps berücksichtigt und habe das gewünschte Ergebnis erhalten:
SQL-Code:
select a.Datum, b.Datum, a.Datum - b.Datum
from Schadensfaelle a
join Schadensfaelle b
  on b.Datum = ( select max(c.Datum) from Schadensfaelle c where a.Datum > c.Datum )
MAX deshalb, weil aus c das größte Datum gesucht wird, das kleiner als a.Datum ist.
Code:
DATUM          DATUM1       SUBTRACT
03.06.2008      01.02.2008        123
13.09.2008      03.06.2008        102
Es gefällt mir noch nicht, dass ich die Tabelle wegen der MAX-Bestimmung noch ein drittes Mal einbinden muss. Die Geschwindigkeit beeinträchtigt das wohl nicht, da dürfte jedes DBMS "intelligent" genug sein; aber die Übersichtlichkeit leidet doch etwas.

Gibt es noch bessere Vorschläge?

Danke jedenfalls
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat