Hallo,
ein vorhandenes Programm schreibt in eine Tabelle ein art Benutzerprotokoll, was der Nutzer macht und unter anderem auch wann er sich an- und abgemeldet hat.
Ich möchte mir gerne aus dieser Tabelle auslesen wann das gewesen ist und wie lange der Nutzer angemeldet war.
Mein Problem dabei ist, es wird für jede Aktion ein Datensatz geschrieben. Ich habe also pro Benutzer immer mindestens 2.
So sieht die Tabelle in etwa aus, ich habe diese mal nachgebaut:
Und so hätte ich das gerne:
Meine erste Idee geht in diese Richtung:
Hat einer ne Idee und könnte mir bitte helfen
Grüße
ein vorhandenes Programm schreibt in eine Tabelle ein art Benutzerprotokoll, was der Nutzer macht und unter anderem auch wann er sich an- und abgemeldet hat.
Ich möchte mir gerne aus dieser Tabelle auslesen wann das gewesen ist und wie lange der Nutzer angemeldet war.
Mein Problem dabei ist, es wird für jede Aktion ein Datensatz geschrieben. Ich habe also pro Benutzer immer mindestens 2.
So sieht die Tabelle in etwa aus, ich habe diese mal nachgebaut:
Und so hätte ich das gerne:
Meine erste Idee geht in diese Richtung:
Code:
WITH anmeldungen AS (
SELECT id, Type, CONVERT(DATETIME, STUFF(STUFF(STUFF(Datum + Uhrzeit,13,0,':'),11,0,':'),9,0,' ')) AS FormattedDate, Benutzer
FROM ProtokollTest
WHERE Type = 1 --1=Angemeldet
),
abmeldungen AS (
SELECT id, Type, CONVERT(DATETIME, STUFF(STUFF(STUFF(Datum + Uhrzeit,13,0,':'),11,0,':'),9,0,' ')) AS FormattedDate, Benutzer
FROM ProtokollTest
WHERE Type = 2 --2=Abgemeldet
)
SELECT *, DATEDIFF(second, an.FormattedDate, ab.FormattedDate) as Dauer
FROM anmeldungen AS an
LEFT JOIN abmeldungen as ab
ON an.Benutzer = ab.Benutzer
Hat einer ne Idee und könnte mir bitte helfen
Grüße