Forum: PC-Programmierung [SQL] Dauer aus Timestamps berechnen


von Firebird (Gast)


Lesenswert?

Hallo Forum,

in einer Firebird-Datenbank logge ich die Betriebszustände eines Gerätes 
mit.

in einer Zeile stehen also der TIMESTAMP, ein CODE (1 - start, 0 - stop, 
anderer Wert - Fehler), sowie ein VALUE, um den weitere Angaben im 
Fehlerfall zu haben.

Nun würd ich gerne eine Abfrage erzeugen, welche die TIMESTAMPs auf 2 
Spalten so aufteilt, dass zusammengehörige Starts und Stops in einer 
Zeile landen, um anschließend die Dauer - Laufzeiten und 
Stillstandszeiten ausrechnen zu lassen.

Zusätzlich schwierig wirds dann noch, wenn durch Stromausfall es keinen 
Eintrag über ein Stop gibt und damit 2 Starts auf einander folgen.

Wie erstellt man solch eine Abfrage?

Danke für eure Hilfe
FB

von Peter II (Gast)


Lesenswert?

das ist zwar machbar aber nicht auf die schnell schön machbar. 
Sinnvoller ist gleich die Datenbank so anzupassen das man es einfach 
abfragen kann.


Tabelle 1
Id, Start, Stop

Tabelle 2
Id, Zeitpunkt, Code, Value

Wenn du ein Start einfügst ist es klar, einfach in Tabelle1 eine neue 
Zeile anlegen. Beim Stop einfach die letzte Zeile updaten. Bei einem 
Fehler einfach eine neue Zeile in Tabelle2 schreiben.


schon lässt sich das ganze ohne fingerbrechen abfragen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.