Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)
Online

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#14

Re: Harte SQL-Nuss - Abfrage formulieren

  Alt 13. Nov 2003, 08:58
Da wirst du mit Ansi-SQL nicht weiter kommen.

Das Problem ist, das Du in der Abfrage selber eine gewisse Logik benötigst, die sich durch reines SQL nicht abbilden lässt.

Prinzipiell sieht Deine Abfrage so aus:

Hole alle Anfangszeiten
für jeden Datensatz in dieser Abfrage:
- hole zugehörigen Endzeitpunkt
- hole dazwischen liegende daten

und an der zweiten Zeile scheiterst Du.

(Das mit dem zugehörigen Endzeitpunkt deswegen weil es theoretisch sein kann, daß sich Zeitbereiche überschneiden. Beispiel: 1. 09:00 Uhr - 12:00 Uhr, 2. 11:45 Uhr bis 13:00 Uhr. Auch wenn das vielleicht praktisch nicht so vorkommen kann, so wie Du das Datenmodell beschrieben hast ist es möglich und sollte entsprechend auch behandelt werden können.)

Das ganze lässt sich über Transact-SQL z.b. beim MS SQL - Server abbilden, bei Oracle geht das auch mit servergespeicherten Prozeduren. Ob das mit Interbase abbildbar ist weiss ich leider nicht.

Ansonsten müsstest Du diese Schleife tatsächlich programmatisch abbilden,
also erstmal alle End- und Startzeitpunkte selektieren, die jeweils zusammengehörigen raussortieren und dann pro Bereich eine einzelne between-Abfrage loslassen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat