Ich habe eine Reihe von Daten, die Art wie geht:SQL. DateDiff zwischen den Zeilen unter durch Parsen Zeileninhalt bestimmt Bedingungen
TimeStamp | Action
-------------+-------------------------
'2016-01-01' | 'State changed to 1'
'2016-01-03' | 'State changed to 2'
'2016-01-07' | 'State changed to 1'
'2016-01-12' | 'State changed to 2'
'2016-01-20' | 'State changed to Final'
Was ich zählen müssen, ist, wie viel Zeit haben, das Objekt in dem Zustand verbracht ‚1‘ , wie viel Zeit verbrachte es in Zustand '2', etc.
Ich kann nicht meinen Kopf herumspielen, wie mit DateDiff zu spielen, um Ausgabe wie (in Anbetracht wir zählend wie viele Tage jeder der Staaten zuletzt):
'1' | '2'
---------
5 | 12
So habe ich in der Regel zwei Fragen:
- Ist es sogar möglich, mit SQL zu tun?
- Wenn es ist - wie kann das gemacht werden?
Vielen Dank im Voraus!
Edit: vergaß zu erwähnen, DBMS SQL Server 2012.
Was ist Ihr DBMS? SQL Server? – Siyual
Sie benötigen Pivot, um dies zu tun und den gesamten Tagesunterschied zu erhalten. –
Können Sie die Logik erklären, um das Ergebnis zu erhalten. Ich konnte es nicht herausfinden? –