Jump to content

Select als Login Zähler für Sessions in einer bestimmten Zeitspanne


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

 

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*!

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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?

Link zu diesem Kommentar

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.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...