[SQL] Dauer aus Timestamps berechnen

Gast #3167941
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
Gast #3167951
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.