MarioClarson 0 Geschrieben 3. Dezember 2013 Melden Teilen Geschrieben 3. Dezember 2013 Hallo ihr alle, Ich habe eine SQL Datenbank und dort gibt es eine Tabelle mit allen Login Sessions (mit Startzeitpunkt und Endzeitpunkt in UNIX Zeit). Ich versuche eine Abfrage zu finden/erstellen die die Logins in einer bestimmten Zeit zählt (Woche, Monat, Jahr). Aber wenn die Person sich einloggt, dürfen vom Beginn des Logins alle weiteren Logins dieser Person vom ersten Login an 24h lang nicht mitgezählt werden. Beispiel: Mike Start 01.01.2013 - 12:00 Ende 01.01.2013 - 12:33 Mike Start 01.01.2013 - 15:22 Ende 01.01.2013 - 16:53 Mike Start 01.01.2013 - 20:01 Ende 01.01.2013 - 21:49 Mike Start 02.01.2013 - 15:00 Ende 02.01.2013 - 17:33 Mike Start 02.01.2013 - 18:21 Ende 02.01.2013 - 20:11 .... Es darf hierbei nur als 2 gezählt werden, weil Mike am 01.01.2013 - 12:00 gestartet hat und von da an 24h (also bis 02.01.2013 - 12:00) ist nur eine Session. Der zweite und dritte Login sind in dieser ersten Zeitperiode und dürfen deshalb nicht mitgezählt werden. Dann sind die 24h vom ersten Login vorbei. Er logt sich ein weiteres mal ein. Von dort beginnen wieder 24h, so dass der letzte Login auch wieder nicht zählt, also nur 2 insgesamt. Ich weis, dass das wohl nicht ganz so einfach ist. Ich denke aber das man für diese Abfrage eigentlich nicht mehr als Loginname, Startzeit and Endezeit braucht. Ich habe mal etwas unbeholfen angefangen: SELECTCASE WHEN Loginname = Loginname and StartTime between StartTime and StartTime + 86400 and Endtime between StartTime and StartTime + 86400 THEN .... END FROM Table Wer möchte kann auch gerne andere Befehle wie Update nutzen, falls nötig. Ich hoffe hier kann mir jemand weiter helfen. Grüße Mario Zitieren Link zu diesem Kommentar
LiveeviL-Odw 2 Geschrieben 3. Dezember 2013 Melden Teilen Geschrieben 3. Dezember 2013 HI ich hoffe ich habe dich richtig verstanden. Ich versuche es mal zu beantworten: Bitte gib uns mal die Tabellenspalten. ich gehe davon aus das die spalte Name start und Stop existiert dann würde ich es so Probieren: Select Name, case(avg(ende - start)) as Time when time > 24 then N'login older then 24 Hours' else unknown group by Name order by Time desc Nur so als Gedanken anstoß auf Basis das ich die Frage richtig verastanden habe 1 Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 3. Dezember 2013 Melden Teilen Geschrieben 3. Dezember 2013 Doppelpostings sind böse, vor allem wenn sie nicht angekündigt sind: http://social.msdn.microsoft.com/Forums/de-DE/eb01189c-1070-4024-b20c-b789fd7fd83d/select-als-login-zhler-fr-sessions-in-einer-bestimmten-zeitspanne?forum=sqlserverde#eb01189c-1070-4024-b20c-b789fd7fd83d Zitieren Link zu diesem Kommentar
MarioClarson 0 Geschrieben 4. Dezember 2013 Autor Melden Teilen Geschrieben 4. Dezember 2013 Hallo Liveevil-Odw, ja an den Ansatz mit case when then else hab ich auch schon gedacht. Ja Name, Start und Ende ist ok. In der Tabelle steht noch mehr, sollte aber für die Abfrage nicht von belang sein. Allerdings versteh ich nicht so ganz, warum du avg benutzt, das bildet doch den Durchschnitt. Hier in dem Forum gab es auch einen netten Ansatz, ich habe weiter unten dann ein Bild verlinkt, um die Probleme und Vorstellungen anschaulicher zu machen: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/b6e4778f-447d-4ed2-ba80-834663fdb9c9/select-as-login-counter-for-sessions-in-a-period-of-time?forum=sqlgetstarted Hallo Sunny61, für mich ist es ein Doppelpost, wenn man was 2 mal im gleichen Forum postet. Ich bin nicht davon ausgegangen, das mcseboard.de zu microsoft.com gehört. Wenn ich damit falsch liege, dann korrigier mich bitte. Zitieren Link zu diesem Kommentar
NorbertFe 2.034 Geschrieben 4. Dezember 2013 Melden Teilen Geschrieben 4. Dezember 2013 Stimmt eigentlich sind s multipostings. Trotzdem ist es nett, wenn man drauf hingewiesen wird. Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 4. Dezember 2013 Melden Teilen Geschrieben 4. Dezember 2013 für mich ist es ein Doppelpost, wenn man was 2 mal im gleichen Forum postet. Ich bin nicht davon ausgegangen, das mcseboard.de zu microsoft.com gehört. Wenn ich damit falsch liege, dann korrigier mich bitte. Die beiden Foren gehören nicht zusammen, aber so viele Leute *kostenlos* mit einem Problem beschäftigen und sie nicht darauf hinzuweisen finde ich frech und dreist. *PLONK*! Zitieren Link zu diesem Kommentar
MarioClarson 0 Geschrieben 4. Dezember 2013 Autor Melden Teilen Geschrieben 4. Dezember 2013 Wer sich in so einem Forum umschaut und die Probleme anschaut, der tüftelt meiner Meinung nach sehr gerne an so etwas. Wenn er daran kein Interesse hätte, würde er die Seite garnicht aufrufen. Was ich allerdings sehr bemerkenswert finde ist, dass sich der "Newbie" hier echt mühe gibt, eine mögliche Lösung zu präsentieren und die "Experten" mit 15k+ bzw. 19k+ Beiträgen sich nur über die Frechheit und Dreistigkeit von Doppelposts auslassen. Zitieren Link zu diesem Kommentar
Morfio 11 Geschrieben 4. Dezember 2013 Melden Teilen Geschrieben 4. Dezember 2013 Wer sich in so einem Forum umschaut und die Probleme anschaut, der tüftelt meiner Meinung nach sehr gerne an so etwas. Wenn er daran kein Interesse hätte, würde er die Seite garnicht aufrufen. Was ich allerdings sehr bemerkenswert finde ist, dass sich der "Newbie" hier echt mühe gibt, eine mögliche Lösung zu präsentieren und die "Experten" mit 15k+ bzw. 19k+ Beiträgen sich nur über die Frechheit und Dreistigkeit von Doppelposts auslassen. Was meinst du, wie die sonst auf so viele Postings kommen würden? Zitieren Link zu diesem Kommentar
LiveeviL-Odw 2 Geschrieben 4. Dezember 2013 Melden Teilen Geschrieben 4. Dezember 2013 Hallo Liveevil-Odw, ja an den Ansatz mit case when then else hab ich auch schon gedacht. Ja Name, Start und Ende ist ok. In der Tabelle steht noch mehr, sollte aber für die Abfrage nicht von belang sein. Allerdings versteh ich nicht so ganz, warum du avg benutzt, das bildet doch den Durchschnitt. Hier in dem Forum gab es auch einen netten Ansatz, ich habe weiter unten dann ein Bild verlinkt, um die Probleme und Vorstellungen anschaulicher zu machen: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/b6e4778f-447d-4ed2-ba80-834663fdb9c9/select-as-login-counter-for-sessions-in-a-period-of-time?forum=sqlgetstarted Hallo Sunny61, für mich ist es ein Doppelpost, wenn man was 2 mal im gleichen Forum postet. Ich bin nicht davon ausgegangen, das mcseboard.de zu microsoft.com gehört. Wenn ich damit falsch liege, dann korrigier mich bitte. HI, ich habe AVG benutzt um die durchnitts Zeit auszurechnen, wenn er über 24 Stunden kommt gibts eine Meldung. Kannst natürlich auch eine Summe bilden . Oder eine maximal Zeit.... Sollte nur ein denk anstoß sein. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.