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
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]
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.
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
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.