[MSSQL] Recordsets auswerten

rip66

Grünschnabel
Hallo zusammen,

ich grüble gerade über einer SQL-Abfrage einer Tabelle, die wie folgt aufgebaut ist:

Code:
ID     Datum
1     2007-12-17 08:15:00
1     2007-12-17 20:46:00
1     2007-12-18 09:13:00
1     2007-12-18 22:15:00
1     2007-12-19 08:03:00
1     2007-12-19 19:27:00
3     2007-12-18 09:31:00
3     2007-12-18 21:14:00
3     2007-12-19 07:45:00
3     2007-12-19 18:30:00

Die ID stellt einen Primärschlüssel dar, der in einer anderen Tabelle jeweils mit einem Namen verknüpft ist.
Das Ergebnis der Abfrage soll folgendes darstellen:

Auflistung der ID's, bei denen die jew. max. Zeit eines Tages subtrahiert von der min. Zeit des Folgetages kleiner als 11 Stunden ist.
Dies wäre gem. obiger Tabelle in folgenden Fällen der Fall:
ID1 v. 18.12 auf 19.12.2007 : (datediff(minute, '2007-12-18T22:15:00', 2007-12-19T08:03:00' / 60) < 11
ID3 v. 18.12 auf 19.12.2007 : (datediff(minute, '2007-12-18T21:14:00', '2007-12-19T07:45:00') / 60) < 11

Idealerweise ergibt sich dabei folgende Auswertung für o.a. Ausschnitt der Tabelle:

Code:
ID     Zeit_1                   Zeit_2               Differenz
1     2007-12-18 22:15:00     2007-12-19 08:03:00     9
3     2007-12-18 21:14:00     2007-12-19 07:45:00     10

wobei Zeit_1 den Maximalwert des Vortages u. Zeit_2 den Minimalwet des Folgetages darstellt.

Ich habe nun schon einiges versucht(select-Anweisungen, cursor -> fetch, etc.), aber irgendwie sehe ich den Wald vor lauter Bäumen nicht.
Vielleicht kann mir jemand auf die Sprünge helfen u. mir den richtigen Denkanstoß geben.
Bei der Überlegung sollte auch die Geschwindigkeit der Abfrage berücksichtigt werden, da die Tabelle zwischenzeitlich bereits mehr als 100.000 Datensätze beinhaltet...Tendenz steigend.
Ich bin für jede Hilfe u. jeden Denkanstoß sehr dankbar.

big thx and greetz
rip66
 

Neue Beiträge

Zurück