Zeitdifferenz berechnen

Hallo liebe wer-weiss-was-Gemeinde,

ich bin es mal wieder und so kurz vor dem Wochenende stehe ich wieder vor einem Problem.
Ich habe in einer Tabelle Datensätze, nach folgendem Aufbau abgespeichert:
ID Nummer Phase Zeitstempel

Nun kann es zu einer Nummer mehrere Phasen geben und so auch mehrere Zeitstempel. Ich möchte die Zeitdifferenz zwischen den einzelnen Phasen berechnen.

Habe mir das so überlegt:

If
Zeile1.Nummer = Zeile2.Nummer
then
Zeile2.Zeit - Zeile1.Zeit
Else
>>gehe zum nächsten Datensatz>gehe zum nächsten Datensatz

Also das Problem besteht immer noch und ich hoffe mir kann jemand helfen.
BITTE

Gruß shiny

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

wo willst Du die Differenzen ablegen? Tabelle, Formular, Textdatei, etc.? Gibt es beliebig viele Phasen oder immer dieselben? Welches Datenformat hat Dein Feld „Zeit“?

ujk

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

wo willst Du die Differenzen ablegen? Tabelle, Formular,
Textdatei, etc.? Gibt es beliebig viele Phasen oder immer
dieselben? Welches Datenformat hat Dein Feld „Zeit“?

ujk

Hallo ujk,

*puh*

Also die Differenzen will ich in einer anderen Tabelle die den gleichen Aufbau wie die andere hat nur um das Feld Differenz ergänzt.
Also in etwa so:

ID Nummer Phase Zeit Differenz

Das Feld Zeit hat das Format Datum/Uhrzeit.

Es gibt insgesamt 10Phasen, wobei nicht alle da sein müssen zur Berechnung.

Beispiel:

Ausgangstabelle
1 10 1_Phase 17.12.2004 13:00
2 10 5_Phase 18.12.2004 14:30
3 10 7_Phase 20.12.2004 17:45

Abspeichertabelle
1 10 1_Phase 17.12.2004 13:00
2 10 5_Phase 18.12.2004 14:30 Differenz aus 2-1
3 10 7_Phase 20.12.2004 17:45 Differenz aus 3-2

So in etwa.

Hallo, shiny!

Ausgangstabelle
1 10 1_Phase 17.12.2004 13:00
2 10 5_Phase 18.12.2004 14:30
3 10 7_Phase 20.12.2004 17:45

Abspeichertabelle
1 10 1_Phase 17.12.2004 13:00
2 10 5_Phase 18.12.2004 14:30 Differenz aus 2-1
3 10 7_Phase 20.12.2004 17:45 Differenz aus 3-2

Bastel Dir folgende Abfrage:

SELECT Tabelle1.Nummer, Tabelle1.Phase, Tabelle1.Zeit, [Zeit]-(select Zeit from tabelle1 as t2
where tabelle1.nummer=t2.nummer and 
t2.phase=(select max(phase) from tabelle1 as t3
where tabelle1.nummer=t3.nummer and tabelle1.phase\>t3.phase)) AS Diff
FROM Tabelle1

Die sollte ungefähr das tun, was Du willst.

Gruß, Manfred

Hallo, shiny!

Ups, habe im select die Id vergessen. Das Format der Differenz könnte u. U. komisch sein: Beachte, dass hier ein Wert von 1 einen Tag definiert, d. h. eine Stunde wären 1/24, also etwa 0,04.

Gruß, Manfred